diff --git a/CHANGELOG.md b/CHANGELOG.md
index 7d137262415f8f0859af2e304b75fa63ba2cc841..b7f06a6d28ce77b426bc3cc1e060750660e8c355 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -16,9 +16,10 @@ BREAKING CHANGES
 * Consumer API - remove group_id argument from get_last/get_by_id/get_last_dataset/get_dataset_by_id functions
 * Producer API - changed meaning of subsets (subset_id replaced with id_in_subset and this means now id of the image within a subset (e.g. module number for multi-module detector)), file_id is now a global id of a multi-set data (i.g. multi-image id) 
     ####  renaming - Producer API
-* stream -> data_source, stream -> stream
+* stream -> data_source, substream -> stream
     ####  renaming - Consumer API
-*
+* stream -> data_source, substream -> stream
+* broker -> consumer
 
 BUG FIXES
 * fix memory leak bug in Python consumer library (lead to problems when creating many consumer instances)
diff --git a/consumer/api/cpp/CMakeLists.txt b/consumer/api/cpp/CMakeLists.txt
index 2b0eb8e928a4eabe9b48147bab7dc0567712fe2d..24661f0da20047c86732a811b657cf9f8d5e24ee 100644
--- a/consumer/api/cpp/CMakeLists.txt
+++ b/consumer/api/cpp/CMakeLists.txt
@@ -1,9 +1,9 @@
 set(TARGET_NAME asapo-consumer)
 
 set(SOURCE_FILES
-        src/data_broker.cpp
-        src/server_data_broker.cpp
-        src/tcp_client.cpp
+        src/consumer.cpp
+        src/consumer_impl.cpp
+        src/tcp_consumer_client.cpp
         src/tcp_connection_pool.cpp
         src/fabric_consumer_client.cpp)
 
@@ -31,8 +31,8 @@ target_link_libraries(${TARGET_NAME} ${CURL_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}
 ################################
 set(TEST_SOURCE_FILES
         unittests/test_consumer_api.cpp
-        unittests/test_server_broker.cpp
-        unittests/test_tcp_client.cpp
+        unittests/test_consumer_impl.cpp
+        unittests/test_tcp_consumer_client.cpp
         unittests/test_tcp_connection_pool.cpp
         unittests/test_fabric_consumer_client.cpp
         unittests/test_rds_error_mapper.cpp
diff --git a/consumer/api/cpp/include/asapo/asapo_consumer.h b/consumer/api/cpp/include/asapo/asapo_consumer.h
index 11723a89d99dd81b9d823674aec3d49af9e71fc5..e9dee4e9b5ebe0b003680e268eae48b32e91a32b 100644
--- a/consumer/api/cpp/include/asapo/asapo_consumer.h
+++ b/consumer/api/cpp/include/asapo/asapo_consumer.h
@@ -1,16 +1,9 @@
-/** @defgroup consumer The Consumer Group
- *  This is the consumer group
- *  @{
- */
-
 #ifndef ASAPO_ASAPO_CONSUMER_H
 #define ASAPO_ASAPO_CONSUMER_H
 
-#include "asapo/consumer/data_broker.h"
+#include "asapo/consumer/consumer.h"
 #include "asapo/consumer/consumer_error.h"
 #include "asapo/common/version.h"
 #include <ostream>
-#endif //ASAPO_ASAPO_CONSUMER_H
 
-
-/** @} */ // end of consumer
+#endif //ASAPO_ASAPO_CONSUMER_H
diff --git a/consumer/api/cpp/include/asapo/consumer/data_broker.h b/consumer/api/cpp/include/asapo/consumer/consumer.h
similarity index 94%
rename from consumer/api/cpp/include/asapo/consumer/data_broker.h
rename to consumer/api/cpp/include/asapo/consumer/consumer.h
index 7e21496094f541ccee2d3a377dbbecbd59bd87b3..92531d380b119e0b199e7ac3aaa1ff3487a7e311 100644
--- a/consumer/api/cpp/include/asapo/consumer/data_broker.h
+++ b/consumer/api/cpp/include/asapo/consumer/consumer.h
@@ -12,7 +12,7 @@
 
 namespace asapo {
 
-class DataBroker {
+class Consumer {
   public:
     //! Reset counter for the specific group.
     /*!
@@ -60,12 +60,12 @@ class DataBroker {
                                              Error* error) = 0;
     virtual IdList GetUnacknowledgedTupleIds(std::string group_id, uint64_t from_id, uint64_t to_id, Error* error) = 0;
 
-    //! Set timeout for broker operations. Default - no timeout
+    //! Set timeout for consumer operations. Default - no timeout
     virtual void SetTimeout(uint64_t timeout_ms) = 0;
 
     //! Will disable RDMA.
     //! If RDMA is disabled, not available or the first connection fails to build up, it will automatically fall back to TCP.
-    //! This will only have an effect if no previous connection attempted was made on this DataBroker.
+    //! This will only have an effect if no previous connection attempted was made on this Consumer.
     virtual void ForceNoRdma() = 0;
 
     //! Returns the current network connection type
@@ -199,14 +199,14 @@ class DataBroker {
   //! Will try to interrupt current long runnung operations (mainly needed to exit waiting loop in C from Python)
     virtual void InterruptCurrentOperation() = 0;
 
-    virtual ~DataBroker() = default; // needed for unique_ptr to delete itself
+    virtual ~Consumer() = default; // needed for unique_ptr to delete itself
 };
 
-/*! A class to create a data broker instance. The class's only function Create is used for this */
-class DataBrokerFactory {
+/*! A class to create consumer instance. The class's only function Create is used for this */
+class ConsumerFactory {
   public:
-    static std::unique_ptr<DataBroker> CreateServerBroker(std::string server_name, std::string source_path,
-            bool has_filesystem, SourceCredentials source, Error* error) noexcept;
+    static std::unique_ptr<Consumer> CreateConsumer(std::string server_name, std::string source_path,
+                                                    bool has_filesystem, SourceCredentials source, Error* error) noexcept;
 
 };
 
diff --git a/consumer/api/cpp/include/asapo/consumer/consumer_error.h b/consumer/api/cpp/include/asapo/consumer/consumer_error.h
index a7ef5867e50af8feba726ab748cf6f90e620e80d..7f3990d226fbcc3f663e367992496cc07e0fa3f7 100644
--- a/consumer/api/cpp/include/asapo/consumer/consumer_error.h
+++ b/consumer/api/cpp/include/asapo/consumer/consumer_error.h
@@ -64,7 +64,7 @@ auto const kWrongInput = ConsumerErrorTemplate {
 };
 
 auto const kInterruptedTransaction = ConsumerErrorTemplate {
-    "error from broker server", ConsumerErrorType::kInterruptedTransaction
+    "server error", ConsumerErrorType::kInterruptedTransaction
 };
 
 auto const kUnavailableService = ConsumerErrorTemplate {
diff --git a/consumer/api/cpp/src/consumer.cpp b/consumer/api/cpp/src/consumer.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..f5424580cbfddc13f23726a5643e20fed3f42a60
--- /dev/null
+++ b/consumer/api/cpp/src/consumer.cpp
@@ -0,0 +1,37 @@
+#include "asapo/common/networking.h"
+#include "asapo/consumer/consumer.h"
+#include "consumer_impl.h"
+#include "asapo/consumer/consumer_error.h"
+
+namespace asapo {
+
+template <typename C, typename ...Args>
+std::unique_ptr<Consumer> Create(const std::string& source_name,
+                                 Error* error,
+                                 Args&& ... args) noexcept {
+    if (source_name.empty()) {
+        *error = ConsumerErrorTemplates::kWrongInput.Generate("Empty Data Source");
+        return nullptr;
+    }
+
+    std::unique_ptr<Consumer> p = nullptr;
+    try {
+        p.reset(new C(source_name, std::forward<Args>(args)...));
+        error->reset(nullptr);
+    } catch (...) {         // we do not test this part
+        error->reset(new SimpleError("Memory error"));
+    }
+
+    return p;
+
+}
+
+std::unique_ptr<Consumer> ConsumerFactory::CreateConsumer(std::string server_name, std::string source_path,
+                                                          bool has_filesystem, SourceCredentials source, Error* error) noexcept {
+    return Create<ConsumerImpl>(std::move(server_name), error, std::move(source_path), has_filesystem,
+                                std::move(source));
+}
+
+
+}
+
diff --git a/consumer/api/cpp/src/server_data_broker.cpp b/consumer/api/cpp/src/consumer_impl.cpp
similarity index 76%
rename from consumer/api/cpp/src/server_data_broker.cpp
rename to consumer/api/cpp/src/consumer_impl.cpp
index 845ab53425f06feb1c89142d07b9ac3b4b7ac60a..f6523a137cdfa4c2c1af61244495c0adf3cf94c2 100644
--- a/consumer/api/cpp/src/server_data_broker.cpp
+++ b/consumer/api/cpp/src/consumer_impl.cpp
@@ -1,12 +1,12 @@
-#include "server_data_broker.h"
-#include "server_data_broker.h"
+#include "consumer_impl.h"
+#include "consumer_impl.h"
 
 #include <chrono>
 
 #include "asapo/json_parser/json_parser.h"
 #include "asapo/io/io_factory.h"
 #include "asapo/http_client/http_error.h"
-#include "tcp_client.h"
+#include "tcp_consumer_client.h"
 
 #include "asapo/asapo_consumer.h"
 #include "fabric_consumer_client.h"
@@ -16,8 +16,8 @@ using std::chrono::system_clock;
 
 namespace asapo {
 
-const std::string ServerDataBroker::kBrokerServiceName = "asapo-broker";
-const std::string ServerDataBroker::kFileTransferServiceName = "asapo-file-transfer";
+const std::string ConsumerImpl::kBrokerServiceName = "asapo-broker";
+const std::string ConsumerImpl::kFileTransferServiceName = "asapo-file-transfer";
 
 Error GetNoDataResponseFromJson(const std::string &json_string, ConsumerErrorData* data) {
     JsonStringParser parser(json_string);
@@ -104,10 +104,10 @@ Error ProcessRequestResponce(const Error &server_err, const RequestOutput* respo
     return ConsumerErrorFromHttpCode(response, code);
 }
 
-ServerDataBroker::ServerDataBroker(std::string server_uri,
-                                   std::string source_path,
-                                   bool has_filesystem,
-                                   SourceCredentials source) :
+ConsumerImpl::ConsumerImpl(std::string server_uri,
+                           std::string source_path,
+                           bool has_filesystem,
+                           SourceCredentials source) :
     io__{GenerateDefaultIO()}, httpclient__{DefaultHttpClient()},
     endpoint_{std::move(server_uri)}, source_path_{std::move(source_path)}, has_filesystem_{has_filesystem},
     source_credentials_(std::move(source)) {
@@ -120,23 +120,23 @@ ServerDataBroker::ServerDataBroker(std::string server_uri,
 
 }
 
-void ServerDataBroker::SetTimeout(uint64_t timeout_ms) {
+void ConsumerImpl::SetTimeout(uint64_t timeout_ms) {
     timeout_ms_ = timeout_ms;
 }
 
-void ServerDataBroker::ForceNoRdma() {
+void ConsumerImpl::ForceNoRdma() {
     should_try_rdma_first_ = false;
 }
 
-NetworkConnectionType ServerDataBroker::CurrentConnectionType() const {
+NetworkConnectionType ConsumerImpl::CurrentConnectionType() const {
     return current_connection_type_;
 }
 
-std::string ServerDataBroker::RequestWithToken(std::string uri) {
+std::string ConsumerImpl::RequestWithToken(std::string uri) {
     return std::move(uri) + "?token=" + source_credentials_.user_token;
 }
 
-Error ServerDataBroker::ProcessPostRequest(const RequestInfo &request, RequestOutput* response, HttpCode* code) {
+Error ConsumerImpl::ProcessPostRequest(const RequestInfo &request, RequestOutput* response, HttpCode* code) {
     Error err;
     switch (request.output_mode) {
         case OutputDataMode::string:
@@ -157,14 +157,14 @@ Error ServerDataBroker::ProcessPostRequest(const RequestInfo &request, RequestOu
     return err;
 }
 
-Error ServerDataBroker::ProcessGetRequest(const RequestInfo &request, RequestOutput* response, HttpCode* code) {
+Error ConsumerImpl::ProcessGetRequest(const RequestInfo &request, RequestOutput* response, HttpCode* code) {
     Error err;
     response->string_output =
         httpclient__->Get(RequestWithToken(request.host + request.api) + request.extra_params, code, &err);
     return err;
 }
 
-Error ServerDataBroker::ProcessRequest(RequestOutput* response, const RequestInfo &request, std::string* service_uri) {
+Error ConsumerImpl::ProcessRequest(RequestOutput* response, const RequestInfo &request, std::string* service_uri) {
     Error err;
     HttpCode code;
     if (request.post) {
@@ -178,7 +178,7 @@ Error ServerDataBroker::ProcessRequest(RequestOutput* response, const RequestInf
     return ProcessRequestResponce(err, response, code);
 }
 
-Error ServerDataBroker::DiscoverService(const std::string &service_name, std::string* uri_to_set) {
+Error ConsumerImpl::DiscoverService(const std::string &service_name, std::string* uri_to_set) {
     if (!uri_to_set->empty()) {
         return nullptr;
     }
@@ -198,10 +198,10 @@ Error ServerDataBroker::DiscoverService(const std::string &service_name, std::st
     return nullptr;
 }
 
-bool ServerDataBroker::SwitchToGetByIdIfPartialData(Error* err,
-                                                    const std::string &response,
-                                                    std::string* group_id,
-                                                    std::string* redirect_uri) {
+bool ConsumerImpl::SwitchToGetByIdIfPartialData(Error* err,
+                                                const std::string &response,
+                                                std::string* group_id,
+                                                std::string* redirect_uri) {
     if (*err == ConsumerErrorTemplates::kPartialData) {
         auto error_data = static_cast<const PartialErrorData*>((*err)->GetCustomData());
         if (error_data == nullptr) {
@@ -215,7 +215,7 @@ bool ServerDataBroker::SwitchToGetByIdIfPartialData(Error* err,
     return false;
 }
 
-bool ServerDataBroker::SwitchToGetByIdIfNoData(Error* err, const std::string &response,std::string* group_id, std::string* redirect_uri) {
+bool ConsumerImpl::SwitchToGetByIdIfNoData(Error* err, const std::string &response, std::string* group_id, std::string* redirect_uri) {
     if (*err == ConsumerErrorTemplates::kNoData) {
         auto error_data = static_cast<const ConsumerErrorData*>((*err)->GetCustomData());
         if (error_data == nullptr) {
@@ -229,7 +229,7 @@ bool ServerDataBroker::SwitchToGetByIdIfNoData(Error* err, const std::string &re
     return false;
 }
 
-RequestInfo ServerDataBroker::PrepareRequestInfo(std::string api_url, bool dataset, uint64_t min_size) {
+RequestInfo ConsumerImpl::PrepareRequestInfo(std::string api_url, bool dataset, uint64_t min_size) {
     RequestInfo ri;
     ri.host = current_broker_uri_;
     ri.api = std::move(api_url);
@@ -240,9 +240,9 @@ RequestInfo ServerDataBroker::PrepareRequestInfo(std::string api_url, bool datas
     return ri;
 }
 
-Error ServerDataBroker::GetRecordFromServer(std::string* response, std::string group_id, std::string stream,
-                                            GetImageServerOperation op,
-                                            bool dataset, uint64_t min_size) {
+Error ConsumerImpl::GetRecordFromServer(std::string* response, std::string group_id, std::string stream,
+                                        GetImageServerOperation op,
+                                        bool dataset, uint64_t min_size) {
     interrupt_flag_= false;
     std::string request_suffix = OpToUriCmd(op);
     std::string request_group = OpToUriCmd(op);
@@ -294,11 +294,11 @@ Error ServerDataBroker::GetRecordFromServer(std::string* response, std::string g
     return nullptr;
 }
 
-Error ServerDataBroker::GetNext(FileInfo* info, std::string group_id, FileData* data) {
+Error ConsumerImpl::GetNext(FileInfo* info, std::string group_id, FileData* data) {
     return GetNext(info, std::move(group_id), kDefaultStream, data);
 }
 
-Error ServerDataBroker::GetNext(FileInfo* info, std::string group_id, std::string stream, FileData* data) {
+Error ConsumerImpl::GetNext(FileInfo* info, std::string group_id, std::string stream, FileData* data) {
     return GetImageFromServer(GetImageServerOperation::GetNext,
                               0,
                               std::move(group_id),
@@ -307,11 +307,11 @@ Error ServerDataBroker::GetNext(FileInfo* info, std::string group_id, std::strin
                               data);
 }
 
-Error ServerDataBroker::GetLast(FileInfo* info, FileData* data) {
+Error ConsumerImpl::GetLast(FileInfo* info, FileData* data) {
     return GetLast(info, kDefaultStream, data);
 }
 
-Error ServerDataBroker::GetLast(FileInfo* info, std::string stream, FileData* data) {
+Error ConsumerImpl::GetLast(FileInfo* info, std::string stream, FileData* data) {
     return GetImageFromServer(GetImageServerOperation::GetLast,
                               0,
                               "0",
@@ -320,7 +320,7 @@ Error ServerDataBroker::GetLast(FileInfo* info, std::string stream, FileData* da
                               data);
 }
 
-std::string ServerDataBroker::OpToUriCmd(GetImageServerOperation op) {
+std::string ConsumerImpl::OpToUriCmd(GetImageServerOperation op) {
     switch (op) {
         case GetImageServerOperation::GetNext:return "next";
         case GetImageServerOperation::GetLast:return "last";
@@ -328,10 +328,10 @@ std::string ServerDataBroker::OpToUriCmd(GetImageServerOperation op) {
     }
 }
 
-Error ServerDataBroker::GetImageFromServer(GetImageServerOperation op, uint64_t id, std::string group_id,
-                                           std::string stream,
-                                           FileInfo* info,
-                                           FileData* data) {
+Error ConsumerImpl::GetImageFromServer(GetImageServerOperation op, uint64_t id, std::string group_id,
+                                       std::string stream,
+                                       FileInfo* info,
+                                       FileData* data) {
     if (info == nullptr) {
         return ConsumerErrorTemplates::kWrongInput.Generate();
     }
@@ -353,7 +353,7 @@ Error ServerDataBroker::GetImageFromServer(GetImageServerOperation op, uint64_t
     return GetDataIfNeeded(info, data);
 }
 
-Error ServerDataBroker::GetDataFromFile(FileInfo* info, FileData* data) {
+Error ConsumerImpl::GetDataFromFile(FileInfo* info, FileData* data) {
     Error error;
     *data = io__->GetDataFromFile(info->FullName(source_path_), &info->size, &error);
     if (error) {
@@ -362,7 +362,7 @@ Error ServerDataBroker::GetDataFromFile(FileInfo* info, FileData* data) {
     return nullptr;
 }
 
-Error ServerDataBroker::RetrieveData(FileInfo* info, FileData* data) {
+Error ConsumerImpl::RetrieveData(FileInfo* info, FileData* data) {
     if (data == nullptr || info == nullptr) {
         return ConsumerErrorTemplates::kWrongInput.Generate("pointers are empty");
     }
@@ -382,7 +382,7 @@ Error ServerDataBroker::RetrieveData(FileInfo* info, FileData* data) {
     return GetDataFromFileTransferService(info, data, false);
 }
 
-Error ServerDataBroker::GetDataIfNeeded(FileInfo* info, FileData* data) {
+Error ConsumerImpl::GetDataIfNeeded(FileInfo* info, FileData* data) {
     if (data == nullptr) {
         return nullptr;
     }
@@ -391,11 +391,11 @@ Error ServerDataBroker::GetDataIfNeeded(FileInfo* info, FileData* data) {
 
 }
 
-bool ServerDataBroker::DataCanBeInBuffer(const FileInfo* info) {
+bool ConsumerImpl::DataCanBeInBuffer(const FileInfo* info) {
     return info->buf_id > 0;
 }
 
-Error ServerDataBroker::CreateNetClientAndTryToGetFile(const FileInfo* info, FileData* data) {
+Error ConsumerImpl::CreateNetClientAndTryToGetFile(const FileInfo* info, FileData* data) {
     const std::lock_guard<std::mutex> lock(net_client_mutex__);
     if (net_client__) {
         return nullptr;
@@ -424,13 +424,13 @@ Error ServerDataBroker::CreateNetClientAndTryToGetFile(const FileInfo* info, Fil
     }
 
     // Create regular tcp client
-    net_client__.reset(new TcpClient());
+    net_client__.reset(new TcpConsumerClient());
     current_connection_type_ = NetworkConnectionType::kAsapoTcp;
 
     return net_client__->GetData(info, data);
 }
 
-Error ServerDataBroker::TryGetDataFromBuffer(const FileInfo* info, FileData* data) {
+Error ConsumerImpl::TryGetDataFromBuffer(const FileInfo* info, FileData* data) {
     if (!net_client__) {
         return CreateNetClientAndTryToGetFile(info, data);
     }
@@ -438,17 +438,17 @@ Error ServerDataBroker::TryGetDataFromBuffer(const FileInfo* info, FileData* dat
     return net_client__->GetData(info, data);
 }
 
-std::string ServerDataBroker::GenerateNewGroupId(Error* err) {
+std::string ConsumerImpl::GenerateNewGroupId(Error* err) {
     RequestInfo ri;
     ri.api = "/creategroup";
     ri.post = true;
     return BrokerRequestWithTimeout(ri, err);
 }
 
-Error ServerDataBroker::ServiceRequestWithTimeout(const std::string &service_name,
-                                                  std::string* service_uri,
-                                                  RequestInfo request,
-                                                  RequestOutput* response) {
+Error ConsumerImpl::ServiceRequestWithTimeout(const std::string &service_name,
+                                              std::string* service_uri,
+                                              RequestInfo request,
+                                              RequestOutput* response) {
     interrupt_flag_= false;
     uint64_t elapsed_ms = 0;
     Error err;
@@ -472,7 +472,7 @@ Error ServerDataBroker::ServiceRequestWithTimeout(const std::string &service_nam
     return err;
 }
 
-Error ServerDataBroker::FtsSizeRequestWithTimeout(FileInfo* info) {
+Error ConsumerImpl::FtsSizeRequestWithTimeout(FileInfo* info) {
     RequestInfo ri = CreateFileTransferRequest(info);
     ri.extra_params = "&sizeonly=true";
     ri.output_mode = OutputDataMode::string;
@@ -487,7 +487,7 @@ Error ServerDataBroker::FtsSizeRequestWithTimeout(FileInfo* info) {
     return err;
 }
 
-Error ServerDataBroker::FtsRequestWithTimeout(FileInfo* info, FileData* data) {
+Error ConsumerImpl::FtsRequestWithTimeout(FileInfo* info, FileData* data) {
     RequestInfo ri = CreateFileTransferRequest(info);
     RequestOutput response;
     response.data_output_size = info->size;
@@ -499,7 +499,7 @@ Error ServerDataBroker::FtsRequestWithTimeout(FileInfo* info, FileData* data) {
     return nullptr;
 }
 
-RequestInfo ServerDataBroker::CreateFileTransferRequest(const FileInfo* info) const {
+RequestInfo ConsumerImpl::CreateFileTransferRequest(const FileInfo* info) const {
     RequestInfo ri;
     ri.api = "/transfer";
     ri.post = true;
@@ -509,25 +509,25 @@ RequestInfo ServerDataBroker::CreateFileTransferRequest(const FileInfo* info) co
     return ri;
 }
 
-std::string ServerDataBroker::BrokerRequestWithTimeout(RequestInfo request, Error* err) {
+std::string ConsumerImpl::BrokerRequestWithTimeout(RequestInfo request, Error* err) {
     RequestOutput response;
     *err = ServiceRequestWithTimeout(kBrokerServiceName, &current_broker_uri_, request, &response);
     return std::move(response.string_output);
 }
 
-Error ServerDataBroker::SetLastReadMarker(uint64_t value, std::string group_id) {
+Error ConsumerImpl::SetLastReadMarker(uint64_t value, std::string group_id) {
     return SetLastReadMarker(value, std::move(group_id), kDefaultStream);
 }
 
-Error ServerDataBroker::ResetLastReadMarker(std::string group_id) {
+Error ConsumerImpl::ResetLastReadMarker(std::string group_id) {
     return ResetLastReadMarker(std::move(group_id), kDefaultStream);
 }
 
-Error ServerDataBroker::ResetLastReadMarker(std::string group_id, std::string stream) {
+Error ConsumerImpl::ResetLastReadMarker(std::string group_id, std::string stream) {
     return SetLastReadMarker(0, group_id, stream);
 }
 
-Error ServerDataBroker::SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) {
+Error ConsumerImpl::SetLastReadMarker(uint64_t value, std::string group_id, std::string stream) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source + "/"
         + std::move(stream) + "/" + std::move(group_id) + "/resetcounter";
@@ -539,7 +539,7 @@ Error ServerDataBroker::SetLastReadMarker(uint64_t value, std::string group_id,
     return err;
 }
 
-uint64_t ServerDataBroker::GetCurrentSize(std::string stream, Error* err) {
+uint64_t ConsumerImpl::GetCurrentSize(std::string stream, Error* err) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         +"/" + std::move(stream) + "/size";
@@ -556,10 +556,10 @@ uint64_t ServerDataBroker::GetCurrentSize(std::string stream, Error* err) {
     return size;
 }
 
-uint64_t ServerDataBroker::GetCurrentSize(Error* err) {
+uint64_t ConsumerImpl::GetCurrentSize(Error* err) {
     return GetCurrentSize(kDefaultStream, err);
 }
-Error ServerDataBroker::GetById(uint64_t id, FileInfo* info, FileData* data) {
+Error ConsumerImpl::GetById(uint64_t id, FileInfo* info, FileData* data) {
     if (id == 0) {
         return ConsumerErrorTemplates::kWrongInput.Generate("id should be positive");
     }
@@ -567,13 +567,13 @@ Error ServerDataBroker::GetById(uint64_t id, FileInfo* info, FileData* data) {
     return GetById(id, info, kDefaultStream, data);
 }
 
-Error ServerDataBroker::GetById(uint64_t id, FileInfo* info, std::string stream, FileData* data) {
+Error ConsumerImpl::GetById(uint64_t id, FileInfo* info, std::string stream, FileData* data) {
     return GetImageFromServer(GetImageServerOperation::GetID, id, "0", stream, info, data);
 }
 
-Error ServerDataBroker::GetRecordFromServerById(uint64_t id, std::string* response, std::string group_id,
-                                                std::string stream,
-                                                bool dataset, uint64_t min_size) {
+Error ConsumerImpl::GetRecordFromServerById(uint64_t id, std::string* response, std::string group_id,
+                                            std::string stream,
+                                            bool dataset, uint64_t min_size) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         +"/" + std::move(stream) +
@@ -589,7 +589,7 @@ Error ServerDataBroker::GetRecordFromServerById(uint64_t id, std::string* respon
     return err;
 }
 
-std::string ServerDataBroker::GetBeamtimeMeta(Error* err) {
+std::string ConsumerImpl::GetBeamtimeMeta(Error* err) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source + "/default/0/meta/0";
 
@@ -606,7 +606,7 @@ DataSet DecodeDatasetFromResponse(std::string response, Error* err) {
     }
 }
 
-FileInfos ServerDataBroker::QueryImages(std::string query, std::string stream, Error* err) {
+FileInfos ConsumerImpl::QueryImages(std::string query, std::string stream, Error* err) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         "/" + std::move(stream) + "/0/queryimages";
@@ -622,31 +622,31 @@ FileInfos ServerDataBroker::QueryImages(std::string query, std::string stream, E
     return dataset.content;
 }
 
-FileInfos ServerDataBroker::QueryImages(std::string query, Error* err) {
+FileInfos ConsumerImpl::QueryImages(std::string query, Error* err) {
     return QueryImages(std::move(query), kDefaultStream, err);
 }
 
-DataSet ServerDataBroker::GetNextDataset(std::string group_id, uint64_t min_size, Error* err) {
+DataSet ConsumerImpl::GetNextDataset(std::string group_id, uint64_t min_size, Error* err) {
     return GetNextDataset(std::move(group_id), kDefaultStream, min_size, err);
 }
 
-DataSet ServerDataBroker::GetNextDataset(std::string group_id, std::string stream, uint64_t min_size, Error* err) {
+DataSet ConsumerImpl::GetNextDataset(std::string group_id, std::string stream, uint64_t min_size, Error* err) {
     return GetDatasetFromServer(GetImageServerOperation::GetNext, 0, std::move(group_id), std::move(stream),min_size, err);
 }
 
-DataSet ServerDataBroker::GetLastDataset(std::string stream, uint64_t min_size, Error* err) {
+DataSet ConsumerImpl::GetLastDataset(std::string stream, uint64_t min_size, Error* err) {
     return GetDatasetFromServer(GetImageServerOperation::GetLast, 0, "0", std::move(stream),min_size, err);
 }
 
-DataSet ServerDataBroker::GetLastDataset(uint64_t min_size, Error* err) {
+DataSet ConsumerImpl::GetLastDataset(uint64_t min_size, Error* err) {
     return GetLastDataset(kDefaultStream, min_size, err);
 }
 
-DataSet ServerDataBroker::GetDatasetFromServer(GetImageServerOperation op,
-                                               uint64_t id,
-                                               std::string group_id, std::string stream,
-                                               uint64_t min_size,
-                                               Error* err) {
+DataSet ConsumerImpl::GetDatasetFromServer(GetImageServerOperation op,
+                                           uint64_t id,
+                                           std::string group_id, std::string stream,
+                                           uint64_t min_size,
+                                           Error* err) {
     FileInfos infos;
     std::string response;
     if (op == GetImageServerOperation::GetID) {
@@ -660,11 +660,11 @@ DataSet ServerDataBroker::GetDatasetFromServer(GetImageServerOperation op,
     return DecodeDatasetFromResponse(response, err);
 }
 
-DataSet ServerDataBroker::GetDatasetById(uint64_t id, uint64_t min_size, Error* err) {
+DataSet ConsumerImpl::GetDatasetById(uint64_t id, uint64_t min_size, Error* err) {
     return GetDatasetById(id, kDefaultStream, min_size, err);
 }
 
-DataSet ServerDataBroker::GetDatasetById(uint64_t id, std::string stream, uint64_t min_size, Error* err) {
+DataSet ConsumerImpl::GetDatasetById(uint64_t id, std::string stream, uint64_t min_size, Error* err) {
     return GetDatasetFromServer(GetImageServerOperation::GetID, id, "0", std::move(stream), min_size, err);
 }
 
@@ -689,7 +689,7 @@ StreamInfos ParseStreamsFromResponse(std::string response, Error* err) {
     return streams;
 }
 
-StreamInfos ServerDataBroker::GetStreamList(std::string from, Error* err) {
+StreamInfos ConsumerImpl::GetStreamList(std::string from, Error* err) {
 
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source + "/0/streams";
@@ -706,7 +706,7 @@ StreamInfos ServerDataBroker::GetStreamList(std::string from, Error* err) {
     return ParseStreamsFromResponse(std::move(response), err);
 }
 
-Error ServerDataBroker::UpdateFolderTokenIfNeeded(bool ignore_existing) {
+Error ConsumerImpl::UpdateFolderTokenIfNeeded(bool ignore_existing) {
     if (!folder_token_.empty() && !ignore_existing) {
         return nullptr;
     }
@@ -722,7 +722,7 @@ Error ServerDataBroker::UpdateFolderTokenIfNeeded(bool ignore_existing) {
     return nullptr;
 }
 
-RequestInfo ServerDataBroker::CreateFolderTokenRequest() const {
+RequestInfo ConsumerImpl::CreateFolderTokenRequest() const {
     RequestInfo ri;
     ri.host = endpoint_;
     ri.api = "/asapo-authorizer/folder";
@@ -734,8 +734,8 @@ RequestInfo ServerDataBroker::CreateFolderTokenRequest() const {
     return ri;
 }
 
-Error ServerDataBroker::GetDataFromFileTransferService(FileInfo* info, FileData* data,
-                                                       bool retry_with_new_token) {
+Error ConsumerImpl::GetDataFromFileTransferService(FileInfo* info, FileData* data,
+                                                   bool retry_with_new_token) {
     auto err = UpdateFolderTokenIfNeeded(retry_with_new_token);
     if (err) {
         return err;
@@ -760,7 +760,7 @@ Error ServerDataBroker::GetDataFromFileTransferService(FileInfo* info, FileData*
     return err;
 }
 
-Error ServerDataBroker::Acknowledge(std::string group_id, uint64_t id, std::string stream) {
+Error ConsumerImpl::Acknowledge(std::string group_id, uint64_t id, std::string stream) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         +"/" + std::move(stream) +
@@ -773,11 +773,11 @@ Error ServerDataBroker::Acknowledge(std::string group_id, uint64_t id, std::stri
     return err;
 }
 
-IdList ServerDataBroker::GetUnacknowledgedTupleIds(std::string group_id,
-                                                   std::string stream,
-                                                   uint64_t from_id,
-                                                   uint64_t to_id,
-                                                   Error* error) {
+IdList ConsumerImpl::GetUnacknowledgedTupleIds(std::string group_id,
+                                               std::string stream,
+                                               uint64_t from_id,
+                                               uint64_t to_id,
+                                               Error* error) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         +"/" + std::move(stream) +
@@ -798,14 +798,14 @@ IdList ServerDataBroker::GetUnacknowledgedTupleIds(std::string group_id,
     return list;
 }
 
-IdList ServerDataBroker::GetUnacknowledgedTupleIds(std::string group_id,
-                                                   uint64_t from_id,
-                                                   uint64_t to_id,
-                                                   Error* error) {
+IdList ConsumerImpl::GetUnacknowledgedTupleIds(std::string group_id,
+                                               uint64_t from_id,
+                                               uint64_t to_id,
+                                               Error* error) {
     return GetUnacknowledgedTupleIds(std::move(group_id), kDefaultStream, from_id, to_id, error);
 }
 
-uint64_t ServerDataBroker::GetLastAcknowledgedTulpeId(std::string group_id, std::string stream, Error* error) {
+uint64_t ConsumerImpl::GetLastAcknowledgedTulpeId(std::string group_id, std::string stream, Error* error) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         +"/" + std::move(stream) +
@@ -828,20 +828,20 @@ uint64_t ServerDataBroker::GetLastAcknowledgedTulpeId(std::string group_id, std:
     return id;
 }
 
-uint64_t ServerDataBroker::GetLastAcknowledgedTulpeId(std::string group_id, Error* error) {
+uint64_t ConsumerImpl::GetLastAcknowledgedTulpeId(std::string group_id, Error* error) {
     return GetLastAcknowledgedTulpeId(std::move(group_id), kDefaultStream, error);
 }
 
-void ServerDataBroker::SetResendNacs(bool resend, uint64_t delay_sec, uint64_t resend_attempts) {
+void ConsumerImpl::SetResendNacs(bool resend, uint64_t delay_sec, uint64_t resend_attempts) {
     resend_ = resend;
     delay_sec_ = delay_sec;
     resend_attempts_ = resend_attempts;
 }
 
-Error ServerDataBroker::NegativeAcknowledge(std::string group_id,
-                                            uint64_t id,
-                                            uint64_t delay_sec,
-                                            std::string stream) {
+Error ConsumerImpl::NegativeAcknowledge(std::string group_id,
+                                        uint64_t id,
+                                        uint64_t delay_sec,
+                                        std::string stream) {
     RequestInfo ri;
     ri.api = "/database/" + source_credentials_.beamtime_id + "/" + source_credentials_.data_source +
         +"/" + std::move(stream) +
@@ -853,7 +853,7 @@ Error ServerDataBroker::NegativeAcknowledge(std::string group_id,
     BrokerRequestWithTimeout(ri, &err);
     return err;
 }
-void ServerDataBroker::InterruptCurrentOperation() {
+void ConsumerImpl::InterruptCurrentOperation() {
     interrupt_flag_= true;
 }
 
diff --git a/consumer/api/cpp/src/server_data_broker.h b/consumer/api/cpp/src/consumer_impl.h
similarity index 95%
rename from consumer/api/cpp/src/server_data_broker.h
rename to consumer/api/cpp/src/consumer_impl.h
index 9c595b0d99f77c91e8e95707a481db7a68d1a024..3d37a79624c2c92dae6085bde9ccb6587f7e0b46 100644
--- a/consumer/api/cpp/src/server_data_broker.h
+++ b/consumer/api/cpp/src/consumer_impl.h
@@ -1,10 +1,10 @@
-#ifndef ASAPO_SERVER_DATA_BROKER_H
-#define ASAPO_SERVER_DATA_BROKER_H
+#ifndef ASAPO_CONSUMER_IMPL_H
+#define ASAPO_CONSUMER_IMPL_H
 
 #include "asapo/common/networking.h"
 #include <mutex>
 #include <atomic>
-#include "asapo/consumer/data_broker.h"
+#include "asapo/consumer/consumer.h"
 #include "asapo/io/io.h"
 #include "asapo/http_client/http_client.h"
 #include "net_client.h"
@@ -51,10 +51,10 @@ Error ConsumerErrorFromNoDataResponse(const std::string& response);
 Error ConsumerErrorFromPartialDataResponse(const std::string& response);
 DataSet DecodeDatasetFromResponse(std::string response, Error* err);
 
-class ServerDataBroker final : public asapo::DataBroker {
+class ConsumerImpl final : public asapo::Consumer {
   public:
-    explicit ServerDataBroker(std::string server_uri, std::string source_path, bool has_filesystem,
-                              SourceCredentials source);
+    explicit ConsumerImpl(std::string server_uri, std::string source_path, bool has_filesystem,
+                          SourceCredentials source);
 
     Error Acknowledge(std::string group_id, uint64_t id, std::string stream = kDefaultStream) override;
     Error NegativeAcknowledge(std::string group_id, uint64_t id, uint64_t delay_sec,
@@ -174,4 +174,4 @@ class ServerDataBroker final : public asapo::DataBroker {
 };
 
 }
-#endif //ASAPO_SERVER_DATA_BROKER_H
+#endif //ASAPO_CONSUMER_IMPL_H
diff --git a/consumer/api/cpp/src/data_broker.cpp b/consumer/api/cpp/src/data_broker.cpp
deleted file mode 100644
index 87191c1f6f6aabb1533a83285903a4228811a734..0000000000000000000000000000000000000000
--- a/consumer/api/cpp/src/data_broker.cpp
+++ /dev/null
@@ -1,37 +0,0 @@
-#include "asapo/common/networking.h"
-#include "asapo/consumer/data_broker.h"
-#include "server_data_broker.h"
-#include "asapo/consumer/consumer_error.h"
-
-namespace asapo {
-
-template <typename Broker, typename ...Args>
-std::unique_ptr<DataBroker> Create(const std::string& source_name,
-                                   Error* error,
-                                   Args&& ... args) noexcept {
-    if (source_name.empty()) {
-        *error = ConsumerErrorTemplates::kWrongInput.Generate("Empty Data Source");
-        return nullptr;
-    }
-
-    std::unique_ptr<DataBroker> p = nullptr;
-    try {
-        p.reset(new Broker(source_name, std::forward<Args>(args)...));
-        error->reset(nullptr);
-    } catch (...) {         // we do not test this part
-        error->reset(new SimpleError("Memory error"));
-    }
-
-    return p;
-
-}
-
-std::unique_ptr<DataBroker> DataBrokerFactory::CreateServerBroker(std::string server_name, std::string source_path,
-        bool has_filesystem, SourceCredentials source, Error* error) noexcept {
-    return Create<ServerDataBroker>(std::move(server_name), error, std::move(source_path), has_filesystem,
-                                    std::move(source));
-}
-
-
-}
-
diff --git a/consumer/api/cpp/src/tcp_client.cpp b/consumer/api/cpp/src/tcp_consumer_client.cpp
similarity index 75%
rename from consumer/api/cpp/src/tcp_client.cpp
rename to consumer/api/cpp/src/tcp_consumer_client.cpp
index 977719906b03bc34f97af763c56e594d8ec363ff..5ee4ffed110fcd169d63d9ff143710fd0c571e75 100644
--- a/consumer/api/cpp/src/tcp_client.cpp
+++ b/consumer/api/cpp/src/tcp_consumer_client.cpp
@@ -1,16 +1,16 @@
-#include "tcp_client.h"
+#include "tcp_consumer_client.h"
 #include "asapo/io/io_factory.h"
 #include "asapo/common/networking.h"
 #include "rds_response_error.h"
 
 namespace asapo {
 
-TcpClient::TcpClient() : io__{GenerateDefaultIO()}, connection_pool__{new TcpConnectionPool()} {
+TcpConsumerClient::TcpConsumerClient() : io__{GenerateDefaultIO()}, connection_pool__{new TcpConnectionPool()} {
 
 }
 
 
-Error TcpClient::SendGetDataRequest(SocketDescriptor sd, const FileInfo* info) const noexcept {
+Error TcpConsumerClient::SendGetDataRequest(SocketDescriptor sd, const FileInfo* info) const noexcept {
     Error err;
     GenericRequestHeader request_header{kOpcodeGetBufferData, info->buf_id, info->size};
     io__->Send(sd, &request_header, sizeof(request_header), &err);
@@ -21,7 +21,7 @@ Error TcpClient::SendGetDataRequest(SocketDescriptor sd, const FileInfo* info) c
     return err;
 }
 
-Error TcpClient::ReconnectAndResendGetDataRequest(SocketDescriptor* sd, const FileInfo* info) const noexcept {
+Error TcpConsumerClient::ReconnectAndResendGetDataRequest(SocketDescriptor* sd, const FileInfo* info) const noexcept {
     Error err;
     *sd = connection_pool__->Reconnect(*sd, &err);
     if (err) {
@@ -31,7 +31,7 @@ Error TcpClient::ReconnectAndResendGetDataRequest(SocketDescriptor* sd, const Fi
     }
 }
 
-Error TcpClient::ReceiveResponce(SocketDescriptor sd) const noexcept {
+Error TcpConsumerClient::ReceiveResponce(SocketDescriptor sd) const noexcept {
     Error err;
 
     GenericNetworkResponse response;
@@ -55,7 +55,7 @@ Error TcpClient::ReceiveResponce(SocketDescriptor sd) const noexcept {
     return nullptr;
 }
 
-Error TcpClient::QueryCacheHasData(SocketDescriptor* sd, const FileInfo* info, bool try_reconnect) const noexcept {
+Error TcpConsumerClient::QueryCacheHasData(SocketDescriptor* sd, const FileInfo* info, bool try_reconnect) const noexcept {
     Error err;
     err = SendGetDataRequest(*sd, info);
     if (err && try_reconnect) {
@@ -68,7 +68,7 @@ Error TcpClient::QueryCacheHasData(SocketDescriptor* sd, const FileInfo* info, b
     return ReceiveResponce(*sd);
 }
 
-Error TcpClient::ReceiveData(SocketDescriptor sd, const FileInfo* info, FileData* data) const noexcept {
+Error TcpConsumerClient::ReceiveData(SocketDescriptor sd, const FileInfo* info, FileData* data) const noexcept {
     Error err;
     uint8_t* data_array = nullptr;
     try {
@@ -88,7 +88,7 @@ Error TcpClient::ReceiveData(SocketDescriptor sd, const FileInfo* info, FileData
     return err;
 }
 
-Error TcpClient::GetData(const FileInfo* info, FileData* data) {
+Error TcpConsumerClient::GetData(const FileInfo* info, FileData* data) {
     Error err;
     bool reused;
     auto sd = connection_pool__->GetFreeConnection(info->source, &reused, &err);
diff --git a/consumer/api/cpp/src/tcp_client.h b/consumer/api/cpp/src/tcp_consumer_client.h
similarity index 91%
rename from consumer/api/cpp/src/tcp_client.h
rename to consumer/api/cpp/src/tcp_consumer_client.h
index 7b23a9601a72ec258a1f3b2926d6577db3ff087e..cc96afc7b1a78f176065776318c4431f0d2809a7 100644
--- a/consumer/api/cpp/src/tcp_client.h
+++ b/consumer/api/cpp/src/tcp_consumer_client.h
@@ -7,9 +7,9 @@
 
 namespace asapo {
 
-class TcpClient : public NetClient {
+class TcpConsumerClient : public NetClient {
   public:
-    explicit TcpClient();
+    explicit TcpConsumerClient();
     Error GetData(const FileInfo* info, FileData* data) override;
     std::unique_ptr<IO> io__;
     std::unique_ptr<TcpConnectionPool> connection_pool__;
diff --git a/consumer/api/cpp/unittests/test_consumer_api.cpp b/consumer/api/cpp/unittests/test_consumer_api.cpp
index a43e1af591ff88bfbdf3c0f5e8aebc908466d92e..a1747fb551e7f2893d799ac4aefb3b470dc34fd6 100644
--- a/consumer/api/cpp/unittests/test_consumer_api.cpp
+++ b/consumer/api/cpp/unittests/test_consumer_api.cpp
@@ -1,12 +1,12 @@
 #include <gmock/gmock.h>
 
-#include "asapo/consumer/data_broker.h"
-#include "../src/server_data_broker.h"
+#include "asapo/consumer/consumer.h"
+#include "../src/consumer_impl.h"
 #include "asapo/common/error.h"
 
-using asapo::DataBrokerFactory;
-using asapo::DataBroker;
-using asapo::ServerDataBroker;
+using asapo::ConsumerFactory;
+using asapo::Consumer;
+using asapo::ConsumerImpl;
 
 using asapo::Error;
 using ::testing::Eq;
@@ -16,7 +16,7 @@ using ::testing::Test;
 
 namespace {
 
-class DataBrokerFactoryTests : public Test {
+class ConsumerFactoryTests : public Test {
   public:
     Error error;
     void SetUp() override {
@@ -25,12 +25,17 @@ class DataBrokerFactoryTests : public Test {
 };
 
 
-TEST_F(DataBrokerFactoryTests, CreateServerDataSource) {
+TEST_F(ConsumerFactoryTests, CreateServerDataSource) {
 
-    auto data_broker = DataBrokerFactory::CreateServerBroker("server", "path", false, asapo::SourceCredentials{asapo::SourceType::kProcessed,"beamtime_id", "", "", "token"}, &error);
+    auto consumer = ConsumerFactory::CreateConsumer("server",
+                                                       "path",
+                                                       false,
+                                                       asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                "beamtime_id", "", "", "token"},
+                                                       &error);
 
     ASSERT_THAT(error, Eq(nullptr));
-    ASSERT_THAT(dynamic_cast<ServerDataBroker*>(data_broker.get()), Ne(nullptr));
+    ASSERT_THAT(dynamic_cast<ConsumerImpl*>(consumer.get()), Ne(nullptr));
 }
 
 
diff --git a/consumer/api/cpp/unittests/test_server_broker.cpp b/consumer/api/cpp/unittests/test_consumer_impl.cpp
similarity index 74%
rename from consumer/api/cpp/unittests/test_server_broker.cpp
rename to consumer/api/cpp/unittests/test_consumer_impl.cpp
index d4bbf4bb209fa94e9394974ba6c05ec295c937ae..6ad5265a35f289ee6b4da8103dfbe5883fce7ca8 100644
--- a/consumer/api/cpp/unittests/test_server_broker.cpp
+++ b/consumer/api/cpp/unittests/test_consumer_impl.cpp
@@ -3,21 +3,21 @@
 #include "gtest/gtest.h"
 #include <chrono>
 
-#include "asapo/consumer/data_broker.h"
+#include "asapo/consumer/consumer.h"
 #include "asapo/consumer/consumer_error.h"
 #include "asapo/io/io.h"
 #include "../../../../common/cpp/src/system_io/system_io.h"
-#include "../src/server_data_broker.h"
+#include "../src/consumer_impl.h"
 #include "../../../../common/cpp/src/http_client/curl_http_client.h"
 #include "asapo/unittests/MockIO.h"
 #include "asapo/unittests/MockHttpClient.h"
 #include "asapo/http_client/http_error.h"
 #include "mocking.h"
-#include "../src/tcp_client.h"
+#include "../src/tcp_consumer_client.h"
 
-using asapo::DataBrokerFactory;
-using asapo::DataBroker;
-using asapo::ServerDataBroker;
+using asapo::ConsumerFactory;
+using asapo::Consumer;
+using asapo::ConsumerImpl;
 using asapo::IO;
 using asapo::FileInfo;
 using asapo::FileData;
@@ -45,21 +45,21 @@ using ::testing::ElementsAre;
 namespace {
 
 TEST(FolderDataBroker, Constructor) {
-    auto data_broker =
-        std::unique_ptr<ServerDataBroker>{new ServerDataBroker("test", "path", false,
-                                                               asapo::SourceCredentials{asapo::SourceType::kProcessed,
+    auto consumer =
+        std::unique_ptr<ConsumerImpl>{new ConsumerImpl("test", "path", false,
+                                                       asapo::SourceCredentials{asapo::SourceType::kProcessed,
                                                                                         "beamtime_id", "", "", "token"})
         };
-    ASSERT_THAT(dynamic_cast<asapo::SystemIO*>(data_broker->io__.get()), Ne(nullptr));
-    ASSERT_THAT(dynamic_cast<asapo::CurlHttpClient*>(data_broker->httpclient__.get()), Ne(nullptr));
-    ASSERT_THAT(data_broker->net_client__.get(), Eq(nullptr));
+    ASSERT_THAT(dynamic_cast<asapo::SystemIO*>(consumer->io__.get()), Ne(nullptr));
+    ASSERT_THAT(dynamic_cast<asapo::CurlHttpClient*>(consumer->httpclient__.get()), Ne(nullptr));
+    ASSERT_THAT(consumer->net_client__.get(), Eq(nullptr));
 }
 
 const uint8_t expected_value = 1;
 
-class ServerDataBrokerTests : public Test {
+class ConsumerImplTests : public Test {
  public:
-  std::unique_ptr<ServerDataBroker> data_broker, fts_data_broker;
+  std::unique_ptr<ConsumerImpl> consumer, fts_consumer;
   NiceMock<MockIO> mock_io;
   NiceMock<MockHttpClient> mock_http_client;
   NiceMock<MockNetClient> mock_netclient;
@@ -88,35 +88,35 @@ class ServerDataBrokerTests : public Test {
 
   void AssertSingleFileTransfer();
   void SetUp() override {
-      data_broker = std::unique_ptr<ServerDataBroker>{
-          new ServerDataBroker(expected_server_uri,
-                               expected_path,
-                               true,
-                               asapo::SourceCredentials{asapo::SourceType::kProcessed, expected_beamtime_id, "",
+      consumer = std::unique_ptr<ConsumerImpl>{
+          new ConsumerImpl(expected_server_uri,
+                           expected_path,
+                           true,
+                           asapo::SourceCredentials{asapo::SourceType::kProcessed, expected_beamtime_id, "",
                                                         expected_data_source, expected_token})
       };
-      fts_data_broker = std::unique_ptr<ServerDataBroker>{
-          new ServerDataBroker(expected_server_uri,
-                               expected_path,
-                               false,
-                               asapo::SourceCredentials{asapo::SourceType::kProcessed, expected_beamtime_id, "",
+      fts_consumer = std::unique_ptr<ConsumerImpl>{
+          new ConsumerImpl(expected_server_uri,
+                           expected_path,
+                           false,
+                           asapo::SourceCredentials{asapo::SourceType::kProcessed, expected_beamtime_id, "",
                                                         expected_data_source, expected_token})
       };
-      data_broker->io__ = std::unique_ptr<IO>{&mock_io};
-      data_broker->httpclient__ = std::unique_ptr<asapo::HttpClient>{&mock_http_client};
-      data_broker->net_client__ = std::unique_ptr<asapo::NetClient>{&mock_netclient};
-      fts_data_broker->io__ = std::unique_ptr<IO>{&mock_io};
-      fts_data_broker->httpclient__ = std::unique_ptr<asapo::HttpClient>{&mock_http_client};
-      fts_data_broker->net_client__ = std::unique_ptr<asapo::NetClient>{&mock_netclient};
+      consumer->io__ = std::unique_ptr<IO>{&mock_io};
+      consumer->httpclient__ = std::unique_ptr<asapo::HttpClient>{&mock_http_client};
+      consumer->net_client__ = std::unique_ptr<asapo::NetClient>{&mock_netclient};
+      fts_consumer->io__ = std::unique_ptr<IO>{&mock_io};
+      fts_consumer->httpclient__ = std::unique_ptr<asapo::HttpClient>{&mock_http_client};
+      fts_consumer->net_client__ = std::unique_ptr<asapo::NetClient>{&mock_netclient};
 
   }
   void TearDown() override {
-      data_broker->io__.release();
-      data_broker->httpclient__.release();
-      data_broker->net_client__.release();
-      fts_data_broker->io__.release();
-      fts_data_broker->httpclient__.release();
-      fts_data_broker->net_client__.release();
+      consumer->io__.release();
+      consumer->httpclient__.release();
+      consumer->net_client__.release();
+      fts_consumer->io__.release();
+      fts_consumer->httpclient__.release();
+      fts_consumer->net_client__.release();
 
   }
   void MockGet(const std::string &response, asapo::HttpCode return_code = HttpCode::OK) {
@@ -177,25 +177,25 @@ class ServerDataBrokerTests : public Test {
   }
 };
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsErrorOnWrongInput) {
-    auto err = data_broker->GetNext(nullptr, "", nullptr);
+TEST_F(ConsumerImplTests, GetImageReturnsErrorOnWrongInput) {
+    auto err = consumer->GetNext(nullptr, "", nullptr);
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kWrongInput));
 }
 
-TEST_F(ServerDataBrokerTests, DefaultStreamIsDetector) {
-    data_broker->io__.release();
-    data_broker->httpclient__.release();
-    data_broker->net_client__.release();
-    data_broker = std::unique_ptr<ServerDataBroker>{
-        new ServerDataBroker(expected_server_uri,
-                             expected_path,
-                             false,
-                             asapo::SourceCredentials{asapo::SourceType::kProcessed, "beamtime_id", "", "",
+TEST_F(ConsumerImplTests, DefaultStreamIsDetector) {
+    consumer->io__.release();
+    consumer->httpclient__.release();
+    consumer->net_client__.release();
+    consumer = std::unique_ptr<ConsumerImpl>{
+        new ConsumerImpl(expected_server_uri,
+                         expected_path,
+                         false,
+                         asapo::SourceCredentials{asapo::SourceType::kProcessed, "beamtime_id", "", "",
                                                       expected_token})
     };
-    data_broker->io__ = std::unique_ptr<IO>{&mock_io};
-    data_broker->httpclient__ = std::unique_ptr<asapo::HttpClient>{&mock_http_client};
-    data_broker->net_client__ = std::unique_ptr<asapo::NetClient>{&mock_netclient};
+    consumer->io__ = std::unique_ptr<IO>{&mock_io};
+    consumer->httpclient__ = std::unique_ptr<asapo::HttpClient>{&mock_http_client};
+    consumer->net_client__ = std::unique_ptr<asapo::NetClient>{&mock_netclient};
 
     MockGetBrokerUri();
 
@@ -209,10 +209,10 @@ TEST_F(ServerDataBrokerTests, DefaultStreamIsDetector) {
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->GetNext(&info, expected_group_id, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetNextUsesCorrectUri) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/"
@@ -222,10 +222,10 @@ TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUri) {
         SetArgPointee<1>(HttpCode::OK),
         SetArgPointee<2>(nullptr),
         Return("")));
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->GetNext(&info, expected_group_id, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUriWithStream) {
+TEST_F(ConsumerImplTests, GetNextUsesCorrectUriWithStream) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
@@ -235,10 +235,10 @@ TEST_F(ServerDataBrokerTests, GetNextUsesCorrectUriWithStream) {
         SetArgPointee<1>(HttpCode::OK),
         SetArgPointee<2>(nullptr),
         Return("")));
-    data_broker->GetNext(&info, expected_group_id, expected_stream, nullptr);
+    consumer->GetNext(&info, expected_group_id, expected_stream, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetLastUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetLastUsesCorrectUri) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client,
@@ -248,10 +248,10 @@ TEST_F(ServerDataBrokerTests, GetLastUsesCorrectUri) {
         SetArgPointee<1>(HttpCode::OK),
         SetArgPointee<2>(nullptr),
         Return("")));
-    data_broker->GetLast(&info, nullptr);
+    consumer->GetLast(&info, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsEndOfStreamFromHttpClient) {
+TEST_F(ConsumerImplTests, GetImageReturnsEndOfStreamFromHttpClient) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
@@ -259,7 +259,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsEndOfStreamFromHttpClient) {
         SetArgPointee<2>(nullptr),
         Return("{\"op\":\"get_record_by_id\",\"id\":1,\"id_max\":1,\"next_stream\":\"\"}")));
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     auto err_data = static_cast<const asapo::ConsumerErrorData*>(err->GetCustomData());
 
@@ -269,7 +269,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsEndOfStreamFromHttpClient) {
     ASSERT_THAT(err_data->next_stream, Eq(""));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsStreamFinishedFromHttpClient) {
+TEST_F(ConsumerImplTests, GetImageReturnsStreamFinishedFromHttpClient) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
@@ -278,7 +278,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsStreamFinishedFromHttpClient) {
         Return("{\"op\":\"get_record_by_id\",\"id\":1,\"id_max\":1,\"next_stream\":\"" + expected_next_stream
                    + "\"}")));
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     auto err_data = static_cast<const asapo::ConsumerErrorData*>(err->GetCustomData());
 
@@ -288,7 +288,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsStreamFinishedFromHttpClient) {
     ASSERT_THAT(err_data->next_stream, Eq(expected_next_stream));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsNoDataFromHttpClient) {
+TEST_F(ConsumerImplTests, GetImageReturnsNoDataFromHttpClient) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
@@ -296,7 +296,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsNoDataFromHttpClient) {
         SetArgPointee<2>(nullptr),
         Return("{\"op\":\"get_record_by_id\",\"id\":1,\"id_max\":2,\"next_stream\":\"""\"}")));
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
     auto err_data = static_cast<const asapo::ConsumerErrorData*>(err->GetCustomData());
 
     ASSERT_THAT(err_data->id, Eq(1));
@@ -306,7 +306,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsNoDataFromHttpClient) {
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kNoData));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsNotAuthorized) {
+TEST_F(ConsumerImplTests, GetImageReturnsNotAuthorized) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
@@ -314,12 +314,12 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsNotAuthorized) {
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kWrongInput));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsWrongResponseFromHttpClient) {
+TEST_F(ConsumerImplTests, GetImageReturnsWrongResponseFromHttpClient) {
 
     MockGetBrokerUri();
 
@@ -328,66 +328,66 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsWrongResponseFromHttpClient) {
         SetArgPointee<2>(nullptr),
         Return("id")));
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kInterruptedTransaction));
     ASSERT_THAT(err->Explain(), HasSubstr("malformed"));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsIfBrokerAddressNotFound) {
+TEST_F(ConsumerImplTests, GetImageReturnsIfBrokerAddressNotFound) {
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr(expected_server_uri + "/asapo-discovery/asapo-broker"), _,
                                         _)).Times(AtLeast(2)).WillRepeatedly(DoAll(
         SetArgPointee<1>(HttpCode::NotFound),
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    data_broker->SetTimeout(100);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(100);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err->Explain(), AllOf(HasSubstr(expected_server_uri), HasSubstr("unavailable")));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsIfBrokerUriEmpty) {
+TEST_F(ConsumerImplTests, GetImageReturnsIfBrokerUriEmpty) {
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr(expected_server_uri + "/asapo-discovery/asapo-broker"), _,
                                         _)).Times(AtLeast(2)).WillRepeatedly(DoAll(
         SetArgPointee<1>(HttpCode::OK),
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    data_broker->SetTimeout(100);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(100);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err->Explain(), AllOf(HasSubstr(expected_server_uri), HasSubstr("unavailable")));
 }
 
-TEST_F(ServerDataBrokerTests, GetDoNotCallBrokerUriIfAlreadyFound) {
+TEST_F(ConsumerImplTests, GetDoNotCallBrokerUriIfAlreadyFound) {
     MockGetBrokerUri();
     MockGet("error_response");
 
-    data_broker->SetTimeout(100);
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(100);
+    consumer->GetNext(&info, expected_group_id, nullptr);
     Mock::VerifyAndClearExpectations(&mock_http_client);
 
     EXPECT_CALL(mock_http_client,
                 Get_t(HasSubstr(expected_server_uri + "/asapo-discovery/asap-broker"), _, _)).Times(0);
     MockGet("error_response");
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->GetNext(&info, expected_group_id, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetBrokerUriAgainAfterConnectionError) {
+TEST_F(ConsumerImplTests, GetBrokerUriAgainAfterConnectionError) {
     MockGetBrokerUri();
     MockGetError();
 
-    data_broker->SetTimeout(0);
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(0);
+    consumer->GetNext(&info, expected_group_id, nullptr);
     Mock::VerifyAndClearExpectations(&mock_http_client);
 
     MockGetBrokerUri();
     MockGet("error_response");
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->GetNext(&info, expected_group_id, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsEofStreamFromHttpClientUntilTimeout) {
+TEST_F(ConsumerImplTests, GetImageReturnsEofStreamFromHttpClientUntilTimeout) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).Times(AtLeast(2)).WillRepeatedly(DoAll(
@@ -395,15 +395,15 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsEofStreamFromHttpClientUntilTimeout
         SetArgPointee<2>(nullptr),
         Return("{\"op\":\"get_record_by_id\",\"id\":1,\"id_max\":1,\"next_stream\":\"""\"}")));
 
-    data_broker->SetTimeout(300);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(300);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kEndOfStream));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsNoDataAfterTimeoutEvenIfOtherErrorOccured) {
+TEST_F(ConsumerImplTests, GetImageReturnsNoDataAfterTimeoutEvenIfOtherErrorOccured) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(300);
+    consumer->SetTimeout(300);
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
         SetArgPointee<1>(HttpCode::Conflict),
@@ -418,13 +418,13 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsNoDataAfterTimeoutEvenIfOtherErrorO
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    data_broker->SetTimeout(300);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(300);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kNoData));
 }
 
-TEST_F(ServerDataBrokerTests, GetNextImageReturnsImmediatelyOnTransferError) {
+TEST_F(ConsumerImplTests, GetNextImageReturnsImmediatelyOnTransferError) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
@@ -432,8 +432,8 @@ TEST_F(ServerDataBrokerTests, GetNextImageReturnsImmediatelyOnTransferError) {
         SetArgPointee<2>(asapo::HttpErrorTemplates::kTransferError.Generate("sss").release()),
         Return("")));
 
-    data_broker->SetTimeout(300);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(300);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kInterruptedTransaction));
     ASSERT_THAT(err->Explain(), HasSubstr("sss"));
@@ -443,7 +443,7 @@ ACTION(AssignArg2) {
     *arg2 = asapo::HttpErrorTemplates::kConnectionError.Generate().release();
 }
 
-TEST_F(ServerDataBrokerTests, GetNextRetriesIfConnectionHttpClientErrorUntilTimeout) {
+TEST_F(ConsumerImplTests, GetNextRetriesIfConnectionHttpClientErrorUntilTimeout) {
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr(expected_server_uri + "/asapo-discovery/asapo-broker"), _,
                                         _)).Times(AtLeast(2)).WillRepeatedly(DoAll(
         SetArgPointee<1>(HttpCode::OK),
@@ -455,13 +455,13 @@ TEST_F(ServerDataBrokerTests, GetNextRetriesIfConnectionHttpClientErrorUntilTime
         AssignArg2(),
         Return("")));
 
-    data_broker->SetTimeout(300);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(300);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kUnavailableService));
 }
 
-TEST_F(ServerDataBrokerTests, GetNextImageReturnsImmediatelyOnFinshedStream) {
+TEST_F(ConsumerImplTests, GetNextImageReturnsImmediatelyOnFinshedStream) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(HasSubstr("next"), _, _)).WillOnce(DoAll(
@@ -469,13 +469,13 @@ TEST_F(ServerDataBrokerTests, GetNextImageReturnsImmediatelyOnFinshedStream) {
         SetArgPointee<2>(nullptr),
         Return("{\"op\":\"get_record_by_id\",\"id\":2,\"id_max\":2,\"next_stream\":\"next\"}")));
 
-    data_broker->SetTimeout(300);
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetTimeout(300);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kStreamFinished));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsFileInfo) {
+TEST_F(ConsumerImplTests, GetImageReturnsFileInfo) {
     MockGetBrokerUri();
 
     auto to_send = CreateFI();
@@ -483,7 +483,7 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsFileInfo) {
 
     MockGet(json);
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(nullptr));
 
@@ -493,26 +493,26 @@ TEST_F(ServerDataBrokerTests, GetImageReturnsFileInfo) {
     ASSERT_THAT(info.timestamp, Eq(to_send.timestamp));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsParseError) {
+TEST_F(ConsumerImplTests, GetImageReturnsParseError) {
     MockGetBrokerUri();
     MockGet("error_response");
 
-    auto err = data_broker->GetNext(&info, expected_group_id, nullptr);
+    auto err = consumer->GetNext(&info, expected_group_id, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kInterruptedTransaction));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReturnsIfNoDataNeeded) {
+TEST_F(ConsumerImplTests, GetImageReturnsIfNoDataNeeded) {
     MockGetBrokerUri();
     MockGet("error_response");
 
     EXPECT_CALL(mock_netclient, GetData_t(_, _)).Times(0);
     EXPECT_CALL(mock_io, GetDataFromFile_t(_, _, _)).Times(0);
 
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->GetNext(&info, expected_group_id, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, GetImageTriesToGetDataFromMemoryCache) {
+TEST_F(ConsumerImplTests, GetImageTriesToGetDataFromMemoryCache) {
     MockGetBrokerUri();
     auto to_send = CreateFI();
     auto json = to_send.Json();
@@ -522,13 +522,13 @@ TEST_F(ServerDataBrokerTests, GetImageTriesToGetDataFromMemoryCache) {
     EXPECT_CALL(mock_netclient, GetData_t(&info, &data)).WillOnce(Return(nullptr));
     MockReadDataFromFile(0);
 
-    data_broker->GetNext(&info, expected_group_id, &data);
+    consumer->GetNext(&info, expected_group_id, &data);
 
     ASSERT_THAT(info.buf_id, Eq(expected_buf_id));
 
 }
 
-TEST_F(ServerDataBrokerTests, GetImageCallsReadFromFileIfCannotReadFromCache) {
+TEST_F(ConsumerImplTests, GetImageCallsReadFromFileIfCannotReadFromCache) {
     MockGetBrokerUri();
     auto to_send = CreateFI();
     auto json = to_send.Json();
@@ -540,11 +540,11 @@ TEST_F(ServerDataBrokerTests, GetImageCallsReadFromFileIfCannotReadFromCache) {
                                           &data)).WillOnce(Return(asapo::IOErrorTemplates::kUnknownIOError.Generate().release()));
     MockReadDataFromFile();
 
-    data_broker->GetNext(&info, expected_group_id, &data);
+    consumer->GetNext(&info, expected_group_id, &data);
     ASSERT_THAT(info.buf_id, Eq(0));
 }
 
-TEST_F(ServerDataBrokerTests, GetImageCallsReadFromFileIfZeroBufId) {
+TEST_F(ConsumerImplTests, GetImageCallsReadFromFileIfZeroBufId) {
     MockGetBrokerUri();
     auto to_send = CreateFI(0);
     auto json = to_send.Json();
@@ -556,10 +556,10 @@ TEST_F(ServerDataBrokerTests, GetImageCallsReadFromFileIfZeroBufId) {
 
     MockReadDataFromFile();
 
-    data_broker->GetNext(&info, expected_group_id, &data);
+    consumer->GetNext(&info, expected_group_id, &data);
 }
 
-TEST_F(ServerDataBrokerTests, GenerateNewGroupIdReturnsErrorCreateGroup) {
+TEST_F(ConsumerImplTests, GenerateNewGroupIdReturnsErrorCreateGroup) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Post_t(HasSubstr("creategroup"), _, "", _, _)).WillOnce(DoAll(
@@ -567,14 +567,14 @@ TEST_F(ServerDataBrokerTests, GenerateNewGroupIdReturnsErrorCreateGroup) {
         SetArgPointee<4>(nullptr),
         Return("")));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto groupid = data_broker->GenerateNewGroupId(&err);
+    auto groupid = consumer->GenerateNewGroupId(&err);
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kWrongInput));
     ASSERT_THAT(groupid, Eq(""));
 }
 
-TEST_F(ServerDataBrokerTests, GenerateNewGroupIdReturnsGroupID) {
+TEST_F(ConsumerImplTests, GenerateNewGroupIdReturnsGroupID) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Post_t(expected_broker_uri + "/creategroup?token=" + expected_token, _, "", _,
@@ -583,16 +583,16 @@ TEST_F(ServerDataBrokerTests, GenerateNewGroupIdReturnsGroupID) {
         SetArgPointee<4>(nullptr),
         Return(expected_group_id)));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto groupid = data_broker->GenerateNewGroupId(&err);
+    auto groupid = consumer->GenerateNewGroupId(&err);
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(groupid, Eq(expected_group_id));
 }
 
-TEST_F(ServerDataBrokerTests, ResetCounterByDefaultUsesCorrectUri) {
+TEST_F(ConsumerImplTests, ResetCounterByDefaultUsesCorrectUri) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client,
                 Post_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/" +
@@ -601,13 +601,13 @@ TEST_F(ServerDataBrokerTests, ResetCounterByDefaultUsesCorrectUri) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = data_broker->ResetLastReadMarker(expected_group_id);
+    auto err = consumer->ResetLastReadMarker(expected_group_id);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-TEST_F(ServerDataBrokerTests, ResetCounterUsesCorrectUri) {
+TEST_F(ConsumerImplTests, ResetCounterUsesCorrectUri) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client,
                 Post_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/" +
@@ -616,13 +616,13 @@ TEST_F(ServerDataBrokerTests, ResetCounterUsesCorrectUri) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = data_broker->SetLastReadMarker(10, expected_group_id);
+    auto err = consumer->SetLastReadMarker(10, expected_group_id);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-TEST_F(ServerDataBrokerTests, ResetCounterUsesCorrectUriWithStream) {
+TEST_F(ConsumerImplTests, ResetCounterUsesCorrectUriWithStream) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client, Post_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
         expected_stream + "/" +
@@ -631,13 +631,13 @@ TEST_F(ServerDataBrokerTests, ResetCounterUsesCorrectUriWithStream) {
         SetArgPointee<3>(HttpCode::OK),
         SetArgPointee<4>(nullptr),
         Return("")));
-    auto err = data_broker->SetLastReadMarker(10, expected_group_id, expected_stream);
+    auto err = consumer->SetLastReadMarker(10, expected_group_id, expected_stream);
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-TEST_F(ServerDataBrokerTests, GetCurrentSizeUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetCurrentSizeUsesCorrectUri) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source +
         "/default/size?token="
@@ -646,14 +646,14 @@ TEST_F(ServerDataBrokerTests, GetCurrentSizeUsesCorrectUri) {
         SetArgPointee<2>(nullptr),
         Return("{\"size\":10}")));
     asapo::Error err;
-    auto size = data_broker->GetCurrentSize(&err);
+    auto size = consumer->GetCurrentSize(&err);
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(size, Eq(10));
 }
 
-TEST_F(ServerDataBrokerTests, GetCurrentSizeUsesCorrectUriWithStream) {
+TEST_F(ConsumerImplTests, GetCurrentSizeUsesCorrectUriWithStream) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
         expected_stream + "/size?token="
@@ -662,14 +662,14 @@ TEST_F(ServerDataBrokerTests, GetCurrentSizeUsesCorrectUriWithStream) {
         SetArgPointee<2>(nullptr),
         Return("{\"size\":10}")));
     asapo::Error err;
-    auto size = data_broker->GetCurrentSize(expected_stream, &err);
+    auto size = consumer->GetCurrentSize(expected_stream, &err);
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(size, Eq(10));
 }
 
-TEST_F(ServerDataBrokerTests, GetCurrentSizeErrorOnWrongResponce) {
+TEST_F(ConsumerImplTests, GetCurrentSizeErrorOnWrongResponce) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source +
         "/default/size?token="
@@ -678,14 +678,14 @@ TEST_F(ServerDataBrokerTests, GetCurrentSizeErrorOnWrongResponce) {
         SetArgPointee<2>(nullptr),
         Return("")));
     asapo::Error err;
-    auto size = data_broker->GetCurrentSize(&err);
+    auto size = consumer->GetCurrentSize(&err);
     ASSERT_THAT(err, Ne(nullptr));
     ASSERT_THAT(size, Eq(0));
 }
 
-TEST_F(ServerDataBrokerTests, GetNDataErrorOnWrongParse) {
+TEST_F(ConsumerImplTests, GetNDataErrorOnWrongParse) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source +
         "/default/size?token="
@@ -694,14 +694,14 @@ TEST_F(ServerDataBrokerTests, GetNDataErrorOnWrongParse) {
         SetArgPointee<2>(nullptr),
         Return("{\"siz\":10}")));
     asapo::Error err;
-    auto size = data_broker->GetCurrentSize(&err);
+    auto size = consumer->GetCurrentSize(&err);
     ASSERT_THAT(err, Ne(nullptr));
     ASSERT_THAT(size, Eq(0));
 }
 
-TEST_F(ServerDataBrokerTests, GetByIdUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetByIdUsesCorrectUri) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     auto to_send = CreateFI();
     auto json = to_send.Json();
 
@@ -714,15 +714,15 @@ TEST_F(ServerDataBrokerTests, GetByIdUsesCorrectUri) {
         SetArgPointee<2>(nullptr),
         Return(json)));
 
-    auto err = data_broker->GetById(expected_dataset_id, &info, nullptr);
+    auto err = consumer->GetById(expected_dataset_id, &info, nullptr);
 
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(info.name, Eq(to_send.name));
 }
 
-TEST_F(ServerDataBrokerTests, GetByIdTimeouts) {
+TEST_F(ConsumerImplTests, GetByIdTimeouts) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(10);
+    consumer->SetTimeout(10);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/0/"
                                             + std::to_string(expected_dataset_id) + "?token="
@@ -731,14 +731,14 @@ TEST_F(ServerDataBrokerTests, GetByIdTimeouts) {
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    auto err = data_broker->GetById(expected_dataset_id, &info, nullptr);
+    auto err = consumer->GetById(expected_dataset_id, &info, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kNoData));
 }
 
-TEST_F(ServerDataBrokerTests, GetByIdReturnsEndOfStream) {
+TEST_F(ConsumerImplTests, GetByIdReturnsEndOfStream) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(10);
+    consumer->SetTimeout(10);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/0/"
                                             + std::to_string(expected_dataset_id) + "?token="
@@ -747,14 +747,14 @@ TEST_F(ServerDataBrokerTests, GetByIdReturnsEndOfStream) {
         SetArgPointee<2>(nullptr),
         Return("{\"op\":\"get_record_by_id\",\"id\":1,\"id_max\":1,\"next_stream\":\"""\"}")));
 
-    auto err = data_broker->GetById(expected_dataset_id, &info, nullptr);
+    auto err = consumer->GetById(expected_dataset_id, &info, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kEndOfStream));
 }
 
-TEST_F(ServerDataBrokerTests, GetByIdReturnsEndOfStreamWhenIdTooLarge) {
+TEST_F(ConsumerImplTests, GetByIdReturnsEndOfStreamWhenIdTooLarge) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(10);
+    consumer->SetTimeout(10);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/0/"
                                             + std::to_string(expected_dataset_id) + "?token="
@@ -763,14 +763,14 @@ TEST_F(ServerDataBrokerTests, GetByIdReturnsEndOfStreamWhenIdTooLarge) {
         SetArgPointee<2>(nullptr),
         Return("{\"op\":\"get_record_by_id\",\"id\":100,\"id_max\":1,\"next_stream\":\"""\"}")));
 
-    auto err = data_broker->GetById(expected_dataset_id, &info, nullptr);
+    auto err = consumer->GetById(expected_dataset_id, &info, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kEndOfStream));
 }
 
-TEST_F(ServerDataBrokerTests, GetMetaDataOK) {
+TEST_F(ConsumerImplTests, GetMetaDataOK) {
     MockGetBrokerUri();
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source +
                                             "/default/0/meta/0?token="
@@ -781,14 +781,14 @@ TEST_F(ServerDataBrokerTests, GetMetaDataOK) {
         Return(expected_metadata)));
 
     asapo::Error err;
-    auto res = data_broker->GetBeamtimeMeta(&err);
+    auto res = consumer->GetBeamtimeMeta(&err);
 
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(res, Eq(expected_metadata));
 
 }
 
-TEST_F(ServerDataBrokerTests, QueryImagesReturnError) {
+TEST_F(ConsumerImplTests, QueryImagesReturnError) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Post_t(HasSubstr("queryimages"), _, expected_query_string, _, _)).WillOnce(DoAll(
@@ -796,16 +796,16 @@ TEST_F(ServerDataBrokerTests, QueryImagesReturnError) {
         SetArgPointee<4>(nullptr),
         Return("error in query")));
 
-    data_broker->SetTimeout(1000);
+    consumer->SetTimeout(1000);
     asapo::Error err;
-    auto images = data_broker->QueryImages(expected_query_string, &err);
+    auto images = consumer->QueryImages(expected_query_string, &err);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kWrongInput));
     ASSERT_THAT(err->Explain(), HasSubstr("query"));
     ASSERT_THAT(images.size(), Eq(0));
 }
 
-TEST_F(ServerDataBrokerTests, QueryImagesReturnEmptyResults) {
+TEST_F(ConsumerImplTests, QueryImagesReturnEmptyResults) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Post_t(HasSubstr("queryimages"), _, expected_query_string, _, _)).WillOnce(DoAll(
@@ -813,15 +813,15 @@ TEST_F(ServerDataBrokerTests, QueryImagesReturnEmptyResults) {
         SetArgPointee<4>(nullptr),
         Return("[]")));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto images = data_broker->QueryImages(expected_query_string, &err);
+    auto images = consumer->QueryImages(expected_query_string, &err);
 
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(images.size(), Eq(0));
 }
 
-TEST_F(ServerDataBrokerTests, QueryImagesWrongResponseArray) {
+TEST_F(ConsumerImplTests, QueryImagesWrongResponseArray) {
 
     MockGetBrokerUri();
 
@@ -837,16 +837,16 @@ TEST_F(ServerDataBrokerTests, QueryImagesWrongResponseArray) {
         SetArgPointee<4>(nullptr),
         Return(responce_string)));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto images = data_broker->QueryImages(expected_query_string, &err);
+    auto images = consumer->QueryImages(expected_query_string, &err);
 
     ASSERT_THAT(err, Ne(nullptr));
     ASSERT_THAT(images.size(), Eq(0));
     ASSERT_THAT(err->Explain(), HasSubstr("response"));
 }
 
-TEST_F(ServerDataBrokerTests, QueryImagesWrongResponseRecorsd) {
+TEST_F(ConsumerImplTests, QueryImagesWrongResponseRecorsd) {
 
     MockGetBrokerUri();
 
@@ -857,16 +857,16 @@ TEST_F(ServerDataBrokerTests, QueryImagesWrongResponseRecorsd) {
         SetArgPointee<4>(nullptr),
         Return(responce_string)));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto images = data_broker->QueryImages(expected_query_string, &err);
+    auto images = consumer->QueryImages(expected_query_string, &err);
 
     ASSERT_THAT(err, Ne(nullptr));
     ASSERT_THAT(images.size(), Eq(0));
     ASSERT_THAT(err->Explain(), HasSubstr("response"));
 }
 
-TEST_F(ServerDataBrokerTests, QueryImagesReturnRecords) {
+TEST_F(ConsumerImplTests, QueryImagesReturnRecords) {
 
     MockGetBrokerUri();
 
@@ -884,9 +884,9 @@ TEST_F(ServerDataBrokerTests, QueryImagesReturnRecords) {
         SetArgPointee<4>(nullptr),
         Return(responce_string)));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto images = data_broker->QueryImages(expected_query_string, &err);
+    auto images = consumer->QueryImages(expected_query_string, &err);
 
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(images.size(), Eq(2));
@@ -895,7 +895,7 @@ TEST_F(ServerDataBrokerTests, QueryImagesReturnRecords) {
     ASSERT_THAT(images[1].name, Eq(rec2.name));
 }
 
-TEST_F(ServerDataBrokerTests, QueryImagesUsesCorrectUriWithStream) {
+TEST_F(ConsumerImplTests, QueryImagesUsesCorrectUriWithStream) {
 
     MockGetBrokerUri();
 
@@ -906,15 +906,15 @@ TEST_F(ServerDataBrokerTests, QueryImagesUsesCorrectUriWithStream) {
         SetArgPointee<4>(nullptr),
         Return("[]")));
 
-    data_broker->SetTimeout(100);
+    consumer->SetTimeout(100);
     asapo::Error err;
-    auto images = data_broker->QueryImages(expected_query_string, expected_stream, &err);
+    auto images = consumer->QueryImages(expected_query_string, expected_stream, &err);
 
     ASSERT_THAT(err, Eq(nullptr));
 
 }
 
-TEST_F(ServerDataBrokerTests, GetNextDatasetUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetNextDatasetUsesCorrectUri) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/" +
@@ -925,10 +925,10 @@ TEST_F(ServerDataBrokerTests, GetNextDatasetUsesCorrectUri) {
         SetArgPointee<2>(nullptr),
         Return("")));
     asapo::Error err;
-    data_broker->GetNextDataset(expected_group_id, 0, &err);
+    consumer->GetNextDataset(expected_group_id, 0, &err);
 }
 
-TEST_F(ServerDataBrokerTests, GetDataSetReturnsFileInfos) {
+TEST_F(ConsumerImplTests, GetDataSetReturnsFileInfos) {
     asapo::Error err;
     MockGetBrokerUri();
 
@@ -949,7 +949,7 @@ TEST_F(ServerDataBrokerTests, GetDataSetReturnsFileInfos) {
 
     MockGet(json);
 
-    auto dataset = data_broker->GetNextDataset(expected_group_id, 0, &err);
+    auto dataset = consumer->GetNextDataset(expected_group_id, 0, &err);
 
     ASSERT_THAT(err, Eq(nullptr));
 
@@ -960,7 +960,7 @@ TEST_F(ServerDataBrokerTests, GetDataSetReturnsFileInfos) {
     ASSERT_THAT(dataset.content[2].id, Eq(to_send3.id));
 }
 
-TEST_F(ServerDataBrokerTests, GetDataSetReturnsPartialFileInfos) {
+TEST_F(ConsumerImplTests, GetDataSetReturnsPartialFileInfos) {
     asapo::Error err;
     MockGetBrokerUri();
 
@@ -981,7 +981,7 @@ TEST_F(ServerDataBrokerTests, GetDataSetReturnsPartialFileInfos) {
 
     MockGet(json, asapo::HttpCode::PartialContent);
 
-    auto dataset = data_broker->GetNextDataset(expected_group_id, 0, &err);
+    auto dataset = consumer->GetNextDataset(expected_group_id, 0, &err);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kPartialData));
 
@@ -995,7 +995,7 @@ TEST_F(ServerDataBrokerTests, GetDataSetReturnsPartialFileInfos) {
     ASSERT_THAT(dataset.content[1].id, Eq(to_send2.id));
 }
 
-TEST_F(ServerDataBrokerTests, GetDataSetByIdReturnsPartialFileInfos) {
+TEST_F(ConsumerImplTests, GetDataSetByIdReturnsPartialFileInfos) {
     asapo::Error err;
     MockGetBrokerUri();
 
@@ -1016,7 +1016,7 @@ TEST_F(ServerDataBrokerTests, GetDataSetByIdReturnsPartialFileInfos) {
 
     MockGet(json, asapo::HttpCode::PartialContent);
 
-    auto dataset = data_broker->GetDatasetById(1, 0, &err);
+    auto dataset = consumer->GetDatasetById(1, 0, &err);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kPartialData));
     auto err_data = static_cast<const asapo::PartialErrorData*>(err->GetCustomData());
@@ -1029,12 +1029,12 @@ TEST_F(ServerDataBrokerTests, GetDataSetByIdReturnsPartialFileInfos) {
     ASSERT_THAT(dataset.content[1].id, Eq(to_send2.id));
 }
 
-TEST_F(ServerDataBrokerTests, GetDataSetReturnsParseError) {
+TEST_F(ConsumerImplTests, GetDataSetReturnsParseError) {
     MockGetBrokerUri();
     MockGet("error_response");
 
     asapo::Error err;
-    auto dataset = data_broker->GetNextDataset(expected_group_id, 0, &err);
+    auto dataset = consumer->GetNextDataset(expected_group_id, 0, &err);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kInterruptedTransaction));
     ASSERT_THAT(dataset.content.size(), Eq(0));
@@ -1042,7 +1042,7 @@ TEST_F(ServerDataBrokerTests, GetDataSetReturnsParseError) {
 
 }
 
-TEST_F(ServerDataBrokerTests, GetLastDatasetUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetLastDatasetUsesCorrectUri) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client,
@@ -1053,10 +1053,10 @@ TEST_F(ServerDataBrokerTests, GetLastDatasetUsesCorrectUri) {
         SetArgPointee<2>(nullptr),
         Return("")));
     asapo::Error err;
-    data_broker->GetLastDataset(2, &err);
+    consumer->GetLastDataset(2, &err);
 }
 
-TEST_F(ServerDataBrokerTests, GetLastDatasetUsesCorrectUriWithStream) {
+TEST_F(ConsumerImplTests, GetLastDatasetUsesCorrectUriWithStream) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
@@ -1067,10 +1067,10 @@ TEST_F(ServerDataBrokerTests, GetLastDatasetUsesCorrectUriWithStream) {
         SetArgPointee<2>(nullptr),
         Return("")));
     asapo::Error err;
-    data_broker->GetLastDataset(expected_stream, 1, &err);
+    consumer->GetLastDataset(expected_stream, 1, &err);
 }
 
-TEST_F(ServerDataBrokerTests, GetDatasetByIdUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetDatasetByIdUsesCorrectUri) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/0/"
@@ -1081,10 +1081,10 @@ TEST_F(ServerDataBrokerTests, GetDatasetByIdUsesCorrectUri) {
         SetArgPointee<2>(nullptr),
         Return("")));
     asapo::Error err;
-    data_broker->GetDatasetById(expected_dataset_id, 0, &err);
+    consumer->GetDatasetById(expected_dataset_id, 0, &err);
 }
 
-TEST_F(ServerDataBrokerTests, GetStreamListUsesCorrectUri) {
+TEST_F(ConsumerImplTests, GetStreamListUsesCorrectUri) {
     MockGetBrokerUri();
     std::string return_streams =
         R"({"streams":[{"lastId":123,"name":"test","timestampCreated":1000000},{"name":"test1","timestampCreated":2000000}]})";
@@ -1097,7 +1097,7 @@ TEST_F(ServerDataBrokerTests, GetStreamListUsesCorrectUri) {
         Return(return_streams)));
 
     asapo::Error err;
-    auto streams = data_broker->GetStreamList("stream_from", &err);
+    auto streams = consumer->GetStreamList("stream_from", &err);
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(streams.size(), Eq(2));
     ASSERT_THAT(streams.size(), 2);
@@ -1105,7 +1105,7 @@ TEST_F(ServerDataBrokerTests, GetStreamListUsesCorrectUri) {
     ASSERT_THAT(streams[1].Json(false), R"({"name":"test1","timestampCreated":2000000})");
 }
 
-TEST_F(ServerDataBrokerTests, GetStreamListUsesCorrectUriWithoutFrom) {
+TEST_F(ConsumerImplTests, GetStreamListUsesCorrectUriWithoutFrom) {
     MockGetBrokerUri();
     EXPECT_CALL(mock_http_client,
                 Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/0/streams"
@@ -1116,10 +1116,10 @@ TEST_F(ServerDataBrokerTests, GetStreamListUsesCorrectUriWithoutFrom) {
         Return("")));;
 
     asapo::Error err;
-    auto streams = data_broker->GetStreamList("", &err);
+    auto streams = consumer->GetStreamList("", &err);
 }
 
-void ServerDataBrokerTests::MockBeforeFTS(FileData* data) {
+void ConsumerImplTests::MockBeforeFTS(FileData* data) {
     auto to_send = CreateFI();
     auto json = to_send.Json();
     MockGet(json);
@@ -1128,7 +1128,7 @@ void ServerDataBrokerTests::MockBeforeFTS(FileData* data) {
                                           data)).WillOnce(Return(asapo::IOErrorTemplates::kUnknownIOError.Generate().release()));
 }
 
-void ServerDataBrokerTests::ExpectFolderToken() {
+void ConsumerImplTests::ExpectFolderToken() {
     std::string expected_folder_query_string = "{\"Folder\":\"" + expected_path + "\",\"BeamtimeId\":\"" +
         expected_beamtime_id
         + "\",\"Token\":\"" + expected_token + "\"}";
@@ -1150,7 +1150,7 @@ ACTION_P(AssignArg3, assign) {
     }
 }
 
-void ServerDataBrokerTests::ExpectFileTransfer(const asapo::ConsumerErrorTemplate* p_err_template) {
+void ConsumerImplTests::ExpectFileTransfer(const asapo::ConsumerErrorTemplate* p_err_template) {
     EXPECT_CALL(mock_http_client, PostReturnArray_t(HasSubstr(expected_fts_uri + "/transfer"),
                                                     expected_cookie,
                                                     expected_fts_query_string,
@@ -1163,7 +1163,7 @@ void ServerDataBrokerTests::ExpectFileTransfer(const asapo::ConsumerErrorTemplat
     ));
 }
 
-void ServerDataBrokerTests::ExpectRepeatedFileTransfer() {
+void ConsumerImplTests::ExpectRepeatedFileTransfer() {
     EXPECT_CALL(mock_http_client, PostReturnArray_t(HasSubstr(expected_fts_uri + "/transfer"),
                                                     expected_cookie,
                                                     expected_fts_query_string,
@@ -1179,7 +1179,7 @@ void ServerDataBrokerTests::ExpectRepeatedFileTransfer() {
     ));
 }
 
-void ServerDataBrokerTests::AssertSingleFileTransfer() {
+void ConsumerImplTests::AssertSingleFileTransfer() {
     asapo::FileData data = asapo::FileData{new uint8_t[1]};
     MockGetBrokerUri();
     MockBeforeFTS(&data);
@@ -1187,7 +1187,7 @@ void ServerDataBrokerTests::AssertSingleFileTransfer() {
     MockGetFTSUri();
     ExpectFileTransfer(nullptr);
 
-    fts_data_broker->GetNext(&info, expected_group_id, &data);
+    fts_consumer->GetNext(&info, expected_group_id, &data);
 
     ASSERT_THAT(data[0], Eq(expected_value));
     Mock::VerifyAndClearExpectations(&mock_http_client);
@@ -1195,11 +1195,11 @@ void ServerDataBrokerTests::AssertSingleFileTransfer() {
     Mock::VerifyAndClearExpectations(&mock_io);
 }
 
-TEST_F(ServerDataBrokerTests, GetImageUsesFileTransferServiceIfCannotReadFromCache) {
+TEST_F(ConsumerImplTests, GetImageUsesFileTransferServiceIfCannotReadFromCache) {
     AssertSingleFileTransfer();
 }
 
-TEST_F(ServerDataBrokerTests, FileTransferReadsFileSize) {
+TEST_F(ConsumerImplTests, FileTransferReadsFileSize) {
     AssertSingleFileTransfer();
     EXPECT_CALL(mock_http_client, Post_t(HasSubstr("sizeonly=true"),
                                          expected_cookie, expected_fts_query_string, _, _)).WillOnce(DoAll(
@@ -1223,20 +1223,20 @@ TEST_F(ServerDataBrokerTests, FileTransferReadsFileSize) {
     FileData data;
     info.size = 0;
     info.buf_id = 0;
-    auto err = fts_data_broker->RetrieveData(&info, &data);
+    auto err = fts_consumer->RetrieveData(&info, &data);
 }
 
-TEST_F(ServerDataBrokerTests, GetImageReusesTokenAndUri) {
+TEST_F(ConsumerImplTests, GetImageReusesTokenAndUri) {
     AssertSingleFileTransfer();
 
     asapo::FileData data = asapo::FileData{new uint8_t[1]};
     MockBeforeFTS(&data);
     ExpectFileTransfer(nullptr);
 
-    auto err = fts_data_broker->GetNext(&info, expected_group_id, &data);
+    auto err = fts_consumer->GetNext(&info, expected_group_id, &data);
 }
 
-TEST_F(ServerDataBrokerTests, GetImageTriesToGetTokenAgainIfTransferFailed) {
+TEST_F(ConsumerImplTests, GetImageTriesToGetTokenAgainIfTransferFailed) {
     AssertSingleFileTransfer();
 
     asapo::FileData data;
@@ -1244,10 +1244,10 @@ TEST_F(ServerDataBrokerTests, GetImageTriesToGetTokenAgainIfTransferFailed) {
     ExpectRepeatedFileTransfer();
     ExpectFolderToken();
 
-    auto err = fts_data_broker->GetNext(&info, expected_group_id, &data);
+    auto err = fts_consumer->GetNext(&info, expected_group_id, &data);
 }
 
-TEST_F(ServerDataBrokerTests, AcknowledgeUsesCorrectUri) {
+TEST_F(ConsumerImplTests, AcknowledgeUsesCorrectUri) {
     MockGetBrokerUri();
     auto expected_acknowledge_command = "{\"Op\":\"ackimage\"}";
     EXPECT_CALL(mock_http_client, Post_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
@@ -1259,12 +1259,12 @@ TEST_F(ServerDataBrokerTests, AcknowledgeUsesCorrectUri) {
         SetArgPointee<4>(nullptr),
         Return("")));
 
-    auto err = data_broker->Acknowledge(expected_group_id, expected_dataset_id, expected_stream);
+    auto err = consumer->Acknowledge(expected_group_id, expected_dataset_id, expected_stream);
 
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-TEST_F(ServerDataBrokerTests, AcknowledgeUsesCorrectUriWithDefaultStream) {
+TEST_F(ConsumerImplTests, AcknowledgeUsesCorrectUriWithDefaultStream) {
     MockGetBrokerUri();
     auto expected_acknowledge_command = "{\"Op\":\"ackimage\"}";
     EXPECT_CALL(mock_http_client,
@@ -1276,12 +1276,12 @@ TEST_F(ServerDataBrokerTests, AcknowledgeUsesCorrectUriWithDefaultStream) {
         SetArgPointee<4>(nullptr),
         Return("")));
 
-    auto err = data_broker->Acknowledge(expected_group_id, expected_dataset_id);
+    auto err = consumer->Acknowledge(expected_group_id, expected_dataset_id);
 
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-void ServerDataBrokerTests::ExpectIdList(bool error) {
+void ConsumerImplTests::ExpectIdList(bool error) {
     MockGetBrokerUri();
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
         expected_stream + "/" +
@@ -1291,16 +1291,16 @@ void ServerDataBrokerTests::ExpectIdList(bool error) {
         Return(error ? "" : "{\"unacknowledged\":[1,2,3]}")));
 }
 
-TEST_F(ServerDataBrokerTests, GetUnAcknowledgedListReturnsIds) {
+TEST_F(ConsumerImplTests, GetUnAcknowledgedListReturnsIds) {
     ExpectIdList(false);
     asapo::Error err;
-    auto list = data_broker->GetUnacknowledgedTupleIds(expected_group_id, expected_stream, 1, 0, &err);
+    auto list = consumer->GetUnacknowledgedTupleIds(expected_group_id, expected_stream, 1, 0, &err);
 
     ASSERT_THAT(list, ElementsAre(1, 2, 3));
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-void ServerDataBrokerTests::ExpectLastAckId(bool empty_response) {
+void ConsumerImplTests::ExpectLastAckId(bool empty_response) {
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
         expected_stream + "/" +
         expected_group_id + "/lastack?token=" + expected_token, _, _)).WillOnce(DoAll(
@@ -1309,34 +1309,34 @@ void ServerDataBrokerTests::ExpectLastAckId(bool empty_response) {
         Return(empty_response ? "{\"lastAckId\":0}" : "{\"lastAckId\":1}")));
 }
 
-TEST_F(ServerDataBrokerTests, GetLastAcknowledgeUsesOk) {
+TEST_F(ConsumerImplTests, GetLastAcknowledgeUsesOk) {
     MockGetBrokerUri();
     ExpectLastAckId(false);
 
     asapo::Error err;
-    auto ind = data_broker->GetLastAcknowledgedTulpeId(expected_group_id, expected_stream, &err);
+    auto ind = consumer->GetLastAcknowledgedTulpeId(expected_group_id, expected_stream, &err);
     ASSERT_THAT(err, Eq(nullptr));
     ASSERT_THAT(ind, Eq(1));
 }
 
-TEST_F(ServerDataBrokerTests, GetLastAcknowledgeReturnsNoData) {
+TEST_F(ConsumerImplTests, GetLastAcknowledgeReturnsNoData) {
     MockGetBrokerUri();
     ExpectLastAckId(true);
 
     asapo::Error err;
-    auto ind = data_broker->GetLastAcknowledgedTulpeId(expected_group_id, expected_stream, &err);
+    auto ind = consumer->GetLastAcknowledgedTulpeId(expected_group_id, expected_stream, &err);
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kNoData));
     ASSERT_THAT(ind, Eq(0));
 }
 
-TEST_F(ServerDataBrokerTests, GetByIdErrorsForId0) {
+TEST_F(ConsumerImplTests, GetByIdErrorsForId0) {
 
-    auto err = data_broker->GetById(0, &info, nullptr);
+    auto err = consumer->GetById(0, &info, nullptr);
 
     ASSERT_THAT(err, Eq(asapo::ConsumerErrorTemplates::kWrongInput));
 }
 
-TEST_F(ServerDataBrokerTests, ResendNacks) {
+TEST_F(ConsumerImplTests, ResendNacks) {
     MockGetBrokerUri();
 
     EXPECT_CALL(mock_http_client, Get_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/default/"
@@ -1347,11 +1347,11 @@ TEST_F(ServerDataBrokerTests, ResendNacks) {
         SetArgPointee<2>(nullptr),
         Return("")));
 
-    data_broker->SetResendNacs(true, 10, 3);
-    data_broker->GetNext(&info, expected_group_id, nullptr);
+    consumer->SetResendNacs(true, 10, 3);
+    consumer->GetNext(&info, expected_group_id, nullptr);
 }
 
-TEST_F(ServerDataBrokerTests, NegativeAcknowledgeUsesCorrectUri) {
+TEST_F(ConsumerImplTests, NegativeAcknowledgeUsesCorrectUri) {
     MockGetBrokerUri();
     auto expected_neg_acknowledge_command = R"({"Op":"negackimage","Params":{"DelaySec":10}})";
     EXPECT_CALL(mock_http_client, Post_t(expected_broker_uri + "/database/beamtime_id/" + expected_data_source + "/" +
@@ -1364,12 +1364,12 @@ TEST_F(ServerDataBrokerTests, NegativeAcknowledgeUsesCorrectUri) {
             SetArgPointee<4>(nullptr),
             Return("")));
 
-    auto err = data_broker->NegativeAcknowledge(expected_group_id, expected_dataset_id, 10, expected_stream);
+    auto err = consumer->NegativeAcknowledge(expected_group_id, expected_dataset_id, 10, expected_stream);
 
     ASSERT_THAT(err, Eq(nullptr));
 }
 
-TEST_F(ServerDataBrokerTests, CanInterruptOperation) {
+TEST_F(ConsumerImplTests, CanInterruptOperation) {
     EXPECT_CALL(mock_http_client, Get_t(_, _, _)).Times(AtLeast(1)).WillRepeatedly(DoAll(
         SetArgPointee<1>(HttpCode::NotFound),
         SetArgPointee<2>(nullptr),
@@ -1378,13 +1378,13 @@ TEST_F(ServerDataBrokerTests, CanInterruptOperation) {
     auto start = std::chrono::system_clock::now();
     asapo::Error err;
     auto exec = [this,&err]() {
-      data_broker->SetTimeout(10000);
-      err = data_broker->GetNext(&info, "", nullptr);
+      consumer->SetTimeout(10000);
+      err = consumer->GetNext(&info, "", nullptr);
     };
     auto thread = std::thread(exec);
     std::this_thread::sleep_for(std::chrono::milliseconds(100));
 
-    data_broker->InterruptCurrentOperation();
+    consumer->InterruptCurrentOperation();
 
     thread.join();
 
diff --git a/consumer/api/cpp/unittests/test_tcp_client.cpp b/consumer/api/cpp/unittests/test_tcp_consumer_client.cpp
similarity index 96%
rename from consumer/api/cpp/unittests/test_tcp_client.cpp
rename to consumer/api/cpp/unittests/test_tcp_consumer_client.cpp
index 286072c8473ce3a2ae4eaf79c3c2c948ff36b5b4..08fee5bc4dc299d0b6144eb0bee2eca18cf42a2b 100644
--- a/consumer/api/cpp/unittests/test_tcp_client.cpp
+++ b/consumer/api/cpp/unittests/test_tcp_consumer_client.cpp
@@ -4,7 +4,7 @@
 #include "asapo/io/io.h"
 #include "asapo/unittests/MockIO.h"
 #include "mocking.h"
-#include "../src/tcp_client.h"
+#include "../src/tcp_consumer_client.h"
 #include "../../../../common/cpp/src/system_io/system_io.h"
 #include "asapo/common/networking.h"
 
@@ -13,7 +13,7 @@ using asapo::FileInfo;
 using asapo::FileData;
 using asapo::MockIO;
 using asapo::SimpleError;
-using asapo::TcpClient;
+using asapo::TcpConsumerClient;
 using asapo::MockTCPConnectionPool;
 
 
@@ -34,7 +34,7 @@ using ::testing::DoAll;
 namespace {
 
 TEST(TcpClient, Constructor) {
-    auto client = std::unique_ptr<TcpClient> {new TcpClient()};
+    auto client = std::unique_ptr<TcpConsumerClient> {new TcpConsumerClient()};
     ASSERT_THAT(dynamic_cast<asapo::SystemIO*>(client->io__.get()), Ne(nullptr));
     ASSERT_THAT(dynamic_cast<asapo::TcpConnectionPool*>(client->connection_pool__.get()), Ne(nullptr));
 }
@@ -55,7 +55,7 @@ ACTION_P(A_WriteSendDataResponse, error_code) {
 
 class TcpClientTests : public Test {
   public:
-    std::unique_ptr<TcpClient> client = std::unique_ptr<TcpClient> {new TcpClient()};
+    std::unique_ptr<TcpConsumerClient> client = std::unique_ptr<TcpConsumerClient> {new TcpConsumerClient()};
     NiceMock<MockIO> mock_io;
     NiceMock<MockTCPConnectionPool> mock_connection_pool;
     FileInfo info;
diff --git a/consumer/api/python/asapo_consumer.pxd b/consumer/api/python/asapo_consumer.pxd
index 121a906eab2f894a490d01933cffd58b1e942176..c855a961bcad42948a0a7828de19a8767b6ea039 100644
--- a/consumer/api/python/asapo_consumer.pxd
+++ b/consumer/api/python/asapo_consumer.pxd
@@ -57,8 +57,8 @@ cdef extern from "asapo/asapo_consumer.h" namespace "asapo":
   NetworkConnectionType NetworkConnectionType_kFabric "asapo::NetworkConnectionType::kFabric"
 
 cdef extern from "asapo/asapo_consumer.h" namespace "asapo" nogil:
-    cdef cppclass DataBroker:
-        DataBroker() except +
+    cdef cppclass Consumer:
+        Consumer() except +
         void SetTimeout(uint64_t timeout_ms)
         void ForceNoRdma()
         NetworkConnectionType CurrentConnectionType()
@@ -84,9 +84,9 @@ cdef extern from "asapo/asapo_consumer.h" namespace "asapo" nogil:
         void InterruptCurrentOperation()
 
 cdef extern from "asapo/asapo_consumer.h" namespace "asapo" nogil:
-    cdef cppclass DataBrokerFactory:
-        DataBrokerFactory() except +
-        unique_ptr[DataBroker] CreateServerBroker(string server_name,string source_path,bool has_filesystem,SourceCredentials source,Error* error)
+    cdef cppclass ConsumerFactory:
+        ConsumerFactory() except +
+        unique_ptr[Consumer] CreateConsumer(string server_name,string source_path,bool has_filesystem,SourceCredentials source,Error* error)
 
 
 cdef extern from "asapo/asapo_consumer.h" namespace "asapo":
diff --git a/consumer/api/python/asapo_consumer.pyx.in b/consumer/api/python/asapo_consumer.pyx.in
index 9f251c07eb2d2ce8817598b05a3b64507a2c98db..214e3b63ebbe5766c78633330090a1670447f587 100644
--- a/consumer/api/python/asapo_consumer.pyx.in
+++ b/consumer/api/python/asapo_consumer.pyx.in
@@ -102,8 +102,8 @@ cdef throw_exception(Error& err, res = None):
     else:
         raise AsapoConsumerError(error_string)
 
-cdef class PyDataBroker:
-    cdef unique_ptr[DataBroker] c_broker
+cdef class PyConsumer:
+    cdef unique_ptr[Consumer] c_consumer
     def _op(self, op, group_id, stream, meta_only, uint64_t id):
         cdef FileInfo info
         cdef string b_group_id = _bytes(group_id)
@@ -114,13 +114,13 @@ cdef class PyDataBroker:
         cdef np.npy_intp dims[1]
         if op == "next":
             with nogil:
-                err =  self.c_broker.get().GetNext(&info, b_group_id,b_stream, p_data)
+                err =  self.c_consumer.get().GetNext(&info, b_group_id,b_stream, p_data)
         elif op == "last":
             with nogil:
-                err =  self.c_broker.get().GetLast(&info, b_stream, p_data)
+                err =  self.c_consumer.get().GetLast(&info, b_stream, p_data)
         elif op == "id":
             with nogil:
-                err =  self.c_broker.get().GetById(id, &info, b_stream, p_data)
+                err =  self.c_consumer.get().GetById(id, &info, b_stream, p_data)
         if err:
             throw_exception(err)
         info_str = _str(info.Json())
@@ -146,7 +146,7 @@ cdef class PyDataBroker:
         cdef Error err
         cdef FileData data
         with nogil:
-            err =  self.c_broker.get().RetrieveData(&info, &data)
+            err =  self.c_consumer.get().RetrieveData(&info, &data)
         if err:
             throw_exception(err)
         cdef np.npy_intp dims[1]
@@ -162,17 +162,17 @@ cdef class PyDataBroker:
         cdef uint64_t size
         cdef string b_stream = _bytes(stream)
         with nogil:
-            size =  self.c_broker.get().GetCurrentSize(b_stream,&err)
+            size =  self.c_consumer.get().GetCurrentSize(b_stream,&err)
         err_str = _str(GetErrorString(&err))
         if err:
             throw_exception(err)
         return size
     def set_timeout(self,timeout):
-        self.c_broker.get().SetTimeout(timeout)
+        self.c_consumer.get().SetTimeout(timeout)
     def force_no_rdma(self):
-        self.c_broker.get().ForceNoRdma()
+        self.c_consumer.get().ForceNoRdma()
     def current_connection_type(self):
-        cdef NetworkConnectionType connection_type = self.c_broker.get().CurrentConnectionType()
+        cdef NetworkConnectionType connection_type = self.c_consumer.get().CurrentConnectionType()
         cdef int cased = <int>connection_type
         cdef string result = "Unknown"
         if cased == <int>NetworkConnectionType_kUndefined:
@@ -188,7 +188,7 @@ cdef class PyDataBroker:
         cdef Error err
         cdef uint64_t id = value
         with nogil:
-            err =  self.c_broker.get().SetLastReadMarker(id,b_group_id,b_stream)
+            err =  self.c_consumer.get().SetLastReadMarker(id,b_group_id,b_stream)
         if err:
             throw_exception(err)
         return
@@ -197,7 +197,7 @@ cdef class PyDataBroker:
         cdef string b_stream = _bytes(stream)
         cdef Error err
         with nogil:
-            err =  self.c_broker.get().ResetLastReadMarker(b_group_id,b_stream)
+            err =  self.c_consumer.get().ResetLastReadMarker(b_group_id,b_stream)
         if err:
             throw_exception(err)
         return
@@ -205,7 +205,7 @@ cdef class PyDataBroker:
         cdef Error err
         cdef string group_id
         with nogil:
-            group_id = self.c_broker.get().GenerateNewGroupId(&err)
+            group_id = self.c_consumer.get().GenerateNewGroupId(&err)
         if err:
             throw_exception(err)
         return _str(group_id)
@@ -214,7 +214,7 @@ cdef class PyDataBroker:
         cdef vector[StreamInfo] streams
         cdef string b_from_stream = _bytes(from_stream)
         with nogil:
-            streams = self.c_broker.get().GetStreamList(b_from_stream,&err)
+            streams = self.c_consumer.get().GetStreamList(b_from_stream,&err)
         if err:
             throw_exception(err)
         list = []
@@ -226,7 +226,7 @@ cdef class PyDataBroker:
         cdef string b_stream = _bytes(stream)
         cdef Error err
         with nogil:
-            err = self.c_broker.get().Acknowledge(b_group_id,id,b_stream)
+            err = self.c_consumer.get().Acknowledge(b_group_id,id,b_stream)
         if err:
             throw_exception(err)
     def neg_acknowledge(self, group_id, uint64_t id, uint64_t delay_sec, stream = "default"):
@@ -234,12 +234,12 @@ cdef class PyDataBroker:
         cdef string b_stream = _bytes(stream)
         cdef Error err
         with nogil:
-            err = self.c_broker.get().NegativeAcknowledge(b_group_id,id,delay_sec,b_stream)
+            err = self.c_consumer.get().NegativeAcknowledge(b_group_id,id,delay_sec,b_stream)
         if err:
             throw_exception(err)
     def set_resend_nacs(self,bool resend, uint64_t delay_sec, uint64_t resend_attempts):
         with nogil:
-            self.c_broker.get().SetResendNacs(resend,delay_sec,resend_attempts)
+            self.c_consumer.get().SetResendNacs(resend,delay_sec,resend_attempts)
 
     def get_last_acknowledged_tuple_id(self, group_id, stream = "default"):
         cdef string b_group_id = _bytes(group_id)
@@ -247,7 +247,7 @@ cdef class PyDataBroker:
         cdef Error err
         cdef uint64_t id
         with nogil:
-            id = self.c_broker.get().GetLastAcknowledgedTulpeId(b_group_id,b_stream,&err)
+            id = self.c_consumer.get().GetLastAcknowledgedTulpeId(b_group_id,b_stream,&err)
         if err:
             throw_exception(err)
         return id
@@ -258,7 +258,7 @@ cdef class PyDataBroker:
         cdef string b_stream = _bytes(stream)
         cdef IdList ids
         with nogil:
-            ids = self.c_broker.get().GetUnacknowledgedTupleIds(b_group_id, b_stream, from_id, to_id, &err)
+            ids = self.c_consumer.get().GetUnacknowledgedTupleIds(b_group_id, b_stream, from_id, to_id, &err)
         if err:
             throw_exception(err)
         list = []
@@ -272,7 +272,7 @@ cdef class PyDataBroker:
         cdef Error err
         cdef FileInfos file_infos
         with nogil:
-            file_infos = self.c_broker.get().QueryImages(b_query,b_stream,&err)
+            file_infos = self.c_consumer.get().QueryImages(b_query,b_stream,&err)
         if err:
             throw_exception(err)
         json_list = []
@@ -287,13 +287,13 @@ cdef class PyDataBroker:
         cdef Error err
         if op == "next":
             with nogil:
-                dataset = self.c_broker.get().GetNextDataset(b_group_id,b_stream, min_size, &err)
+                dataset = self.c_consumer.get().GetNextDataset(b_group_id,b_stream, min_size, &err)
         elif op == "last":
             with nogil:
-                dataset = self.c_broker.get().GetLastDataset(b_stream, min_size, &err)
+                dataset = self.c_consumer.get().GetLastDataset(b_stream, min_size, &err)
         elif op == "id":
             with nogil:
-                dataset = self.c_broker.get().GetDatasetById(id, b_stream, min_size, &err)
+                dataset = self.c_consumer.get().GetDatasetById(id, b_stream, min_size, &err)
         json_list = []
         for fi in dataset.content:
             json_list.append(json.loads(_str(fi.Json())))
@@ -311,20 +311,20 @@ cdef class PyDataBroker:
         cdef Error err
         cdef string meta_str
         with nogil:
-            meta_str = self.c_broker.get().GetBeamtimeMeta(&err)
+            meta_str = self.c_consumer.get().GetBeamtimeMeta(&err)
         if err:
             throw_exception(err)
         meta = json.loads(_str(meta_str))
         del meta['_id']
         return meta
     def interrupt_current_operation(self):
-        self.c_broker.get().InterruptCurrentOperation()
-cdef class __PyDataBrokerFactory:
-    cdef DataBrokerFactory c_factory
+        self.c_consumer.get().InterruptCurrentOperation()
+cdef class __PyConsumerFactory:
+    cdef ConsumerFactory c_factory
     def __cinit__(self):
         with nogil:
-            self.c_factory = DataBrokerFactory()
-    def create_server_broker(self,server_name,source_path,has_filesystem,beamtime_id,data_source,token,timeout):
+            self.c_factory = ConsumerFactory()
+    def create_consumer(self,server_name,source_path,has_filesystem,beamtime_id,data_source,token,timeout):
         cdef string b_server_name = _bytes(server_name)
         cdef string b_source_path = _bytes(source_path)
         cdef bool b_has_filesystem = has_filesystem
@@ -333,15 +333,15 @@ cdef class __PyDataBrokerFactory:
         source.user_token = _bytes(token)
         source.data_source = _bytes(data_source)
         cdef Error err
-        broker = PyDataBroker()
+        consumer = PyConsumer()
         with nogil:
-            broker.c_broker = self.c_factory.CreateServerBroker(b_server_name,b_source_path,b_has_filesystem,source,&err)
+            consumer.c_consumer = self.c_factory.CreateConsumer(b_server_name,b_source_path,b_has_filesystem,source,&err)
         if err:
             throw_exception(err)
-        broker.c_broker.get().SetTimeout(timeout)
-        return broker
+        consumer.c_consumer.get().SetTimeout(timeout)
+        return consumer
 
-def create_server_broker(server_name,source_path,has_filesystem,beamtime_id,data_source,token,timeout_ms):
+def create_consumer(server_name,source_path,has_filesystem,beamtime_id,data_source,token,timeout_ms):
     """
       :param server_name: Server endpoint (hostname:port)
       :type server_name: string
@@ -349,11 +349,11 @@ def create_server_broker(server_name,source_path,has_filesystem,beamtime_id,data
       :type source_path: string
       :param has_filesystem: True if the source_path is accessible locally, otherwise will use file transfer service to get data
       :type has_filesystem: bool
-      :return: Broker object and error. (None,err) if case of error, (broker, None) if success
-      :rtype: Tuple with broker object and error.
+      :return: consumer object and error. (None,err) if case of error, (consumer, None) if success
+      :rtype: Tuple with consumer object and error.
 	"""
-    factory = __PyDataBrokerFactory()
-    return factory.create_server_broker(server_name,source_path,has_filesystem, beamtime_id,data_source,token,timeout_ms)
+    factory = __PyConsumerFactory()
+    return factory.create_consumer(server_name,source_path,has_filesystem, beamtime_id,data_source,token,timeout_ms)
 
 
 __version__ = "@PYTHON_ASAPO_VERSION@@ASAPO_VERSION_COMMIT@"
diff --git a/examples/consumer/CMakeLists.txt b/examples/consumer/CMakeLists.txt
index 1bb3170d2e8508175cba23266b4a1d37c0005a52..3d5359f708d9f0ed2a0a64f8edd5c207be82b261 100644
--- a/examples/consumer/CMakeLists.txt
+++ b/examples/consumer/CMakeLists.txt
@@ -1,9 +1,9 @@
 find_package(Threads)
 
-add_subdirectory(getnext_broker)
+add_subdirectory(getnext)
 
 if(BUILD_EXAMPLES AND BUILD_PYTHON)
-        add_subdirectory(getnext_broker_python)
+        add_subdirectory(getnext_python)
 endif()
 
 
diff --git a/examples/consumer/getnext_broker/CMakeLists.txt b/examples/consumer/getnext/CMakeLists.txt
similarity index 93%
rename from examples/consumer/getnext_broker/CMakeLists.txt
rename to examples/consumer/getnext/CMakeLists.txt
index a830bf5cb3cd8bd34955769a8fe974ffde909454..1e7bd4ca74068e668977e62b76a03d58628fe4ff 100644
--- a/examples/consumer/getnext_broker/CMakeLists.txt
+++ b/examples/consumer/getnext/CMakeLists.txt
@@ -1,5 +1,5 @@
-set(TARGET_NAME getnext_broker)
-set(SOURCE_FILES getnext_broker.cpp)
+set(TARGET_NAME getnext)
+set(SOURCE_FILES getnext.cpp)
 
 if (BUILD_EXAMPLES)
 
diff --git a/examples/consumer/getnext_broker/CMakeLists_separate.in b/examples/consumer/getnext/CMakeLists_separate.in
similarity index 100%
rename from examples/consumer/getnext_broker/CMakeLists_separate.in
rename to examples/consumer/getnext/CMakeLists_separate.in
diff --git a/examples/consumer/getnext_broker/Makefile.in b/examples/consumer/getnext/Makefile.in
similarity index 100%
rename from examples/consumer/getnext_broker/Makefile.in
rename to examples/consumer/getnext/Makefile.in
diff --git a/examples/consumer/getnext_broker/check_linux.sh b/examples/consumer/getnext/check_linux.sh
similarity index 100%
rename from examples/consumer/getnext_broker/check_linux.sh
rename to examples/consumer/getnext/check_linux.sh
diff --git a/examples/consumer/getnext_broker/check_windows.bat b/examples/consumer/getnext/check_windows.bat
similarity index 100%
rename from examples/consumer/getnext_broker/check_windows.bat
rename to examples/consumer/getnext/check_windows.bat
diff --git a/examples/consumer/getnext_broker/getnext_broker.cpp b/examples/consumer/getnext/getnext.cpp
similarity index 89%
rename from examples/consumer/getnext_broker/getnext_broker.cpp
rename to examples/consumer/getnext/getnext.cpp
index 9f46318ea1be5c4933a5154301102fa8b0ce8515..e1d2d6ed0e55f25c7bcea9921a44aa036b659a22 100644
--- a/examples/consumer/getnext_broker/getnext_broker.cpp
+++ b/examples/consumer/getnext/getnext.cpp
@@ -97,20 +97,25 @@ StartThreads(const Args& params, std::vector<int>* nfiles, std::vector<int>* err
     auto exec_next = [&params, nfiles, errors, nbuf, nfiles_total, connection_type, timer](int i) {
         asapo::FileInfo fi;
         Error err;
-        auto broker = asapo::DataBrokerFactory::CreateServerBroker(params.server, params.file_path, true,
-                      asapo::SourceCredentials{asapo::SourceType::kProcessed,params.beamtime_id, "", params.data_source, params.token}, &err);
+        auto consumer = asapo::ConsumerFactory::CreateConsumer(params.server,
+                                                             params.file_path,
+                                                             true,
+                                                             asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                      params.beamtime_id, "",
+                                                                                      params.data_source, params.token},
+                                                             &err);
         if (err) {
-            std::cout << "Error CreateServerBroker: " << err << std::endl;
+            std::cout << "Error CreateConsumer: " << err << std::endl;
             exit(EXIT_FAILURE);
         }
-        //broker->ForceNoRdma();
+        //consumer->ForceNoRdma();
 
-        broker->SetTimeout((uint64_t) params.timeout_ms);
+        consumer->SetTimeout((uint64_t) params.timeout_ms);
         asapo::FileData data;
 
         lock.lock();
         if (group_id.empty()) {
-            group_id = broker->GenerateNewGroupId(&err);
+            group_id = consumer->GenerateNewGroupId(&err);
             if (err) {
                 (*errors)[i] += ProcessError(err);
                 lock.unlock();
@@ -121,7 +126,7 @@ StartThreads(const Args& params, std::vector<int>* nfiles, std::vector<int>* err
         lock.unlock();
 
         if (i == 0) {
-            auto meta = broker->GetBeamtimeMeta(&err);
+            auto meta = consumer->GetBeamtimeMeta(&err);
             if (err == nullptr) {
                 std::cout << meta << std::endl;
             } else {
@@ -132,7 +137,7 @@ StartThreads(const Args& params, std::vector<int>* nfiles, std::vector<int>* err
         bool isFirstFile = true;
         while (true) {
             if (params.datasets) {
-                auto dataset = broker->GetNextDataset(group_id, 0, &err);
+                auto dataset = consumer->GetNextDataset(group_id, 0, &err);
                 if (err == nullptr) {
                     for (auto& fi : dataset.content) {
                         (*nbuf)[i] += fi.buf_id == 0 ? 0 : 1;
@@ -140,7 +145,7 @@ StartThreads(const Args& params, std::vector<int>* nfiles, std::vector<int>* err
                     }
                 }
             } else {
-                err = broker->GetNext(&fi, group_id, params.read_data ? &data : nullptr);
+                err = consumer->GetNext(&fi, group_id, params.read_data ? &data : nullptr);
                 if (isFirstFile) {
                     isFirstFile = false;
                     timer->count_down_and_wait();
@@ -167,7 +172,7 @@ StartThreads(const Args& params, std::vector<int>* nfiles, std::vector<int>* err
             (*nfiles)[i]++;
         }
 
-        (*connection_type)[i] = broker->CurrentConnectionType();
+        (*connection_type)[i] = consumer->CurrentConnectionType();
     };
 
     std::vector<std::thread> threads;
@@ -258,7 +263,7 @@ void TryGetStream(Args* args) {
 }
 
 int main(int argc, char* argv[]) {
-    asapo::ExitAfterPrintVersionIfNeeded("GetNext Broker Example", argc, argv);
+    asapo::ExitAfterPrintVersionIfNeeded("GetNext consumer Example", argc, argv);
     Args params;
     params.datasets = false;
     if (argc != 8 && argc != 9) {
diff --git a/examples/consumer/getnext_broker_python/CMakeLists.txt b/examples/consumer/getnext_python/CMakeLists.txt
similarity index 88%
rename from examples/consumer/getnext_broker_python/CMakeLists.txt
rename to examples/consumer/getnext_python/CMakeLists.txt
index 22bd7bea66e7ecd8a7d0fd2b54273152351e9493..a551c090300c7d24cd0a72dbf8b8602ae9806308 100644
--- a/examples/consumer/getnext_broker_python/CMakeLists.txt
+++ b/examples/consumer/getnext_python/CMakeLists.txt
@@ -1,4 +1,4 @@
-set(TARGET_NAME getnext_broker_python)
+set(TARGET_NAME getnext_python)
 
 
 prepare_asapo()
diff --git a/examples/consumer/getnext_broker_python/check_linux.sh b/examples/consumer/getnext_python/check_linux.sh
similarity index 100%
rename from examples/consumer/getnext_broker_python/check_linux.sh
rename to examples/consumer/getnext_python/check_linux.sh
diff --git a/examples/consumer/getnext_broker_python/check_windows.bat b/examples/consumer/getnext_python/check_windows.bat
similarity index 100%
rename from examples/consumer/getnext_broker_python/check_windows.bat
rename to examples/consumer/getnext_python/check_windows.bat
diff --git a/examples/consumer/getnext_broker_python/getnext.py b/examples/consumer/getnext_python/getnext.py
similarity index 68%
rename from examples/consumer/getnext_broker_python/getnext.py
rename to examples/consumer/getnext_python/getnext.py
index 10d6517cdedc885ff9ddf5ec79828d5908fb8d3c..0aec93df4bdfff79a2b6733e1cb225fa955e28b2 100644
--- a/examples/consumer/getnext_broker_python/getnext.py
+++ b/examples/consumer/getnext_python/getnext.py
@@ -6,21 +6,21 @@ import sys
 
 source, path, beamtime, token, group_id = sys.argv[1:]
 
-broker = asapo_consumer.create_server_broker(source,path,True, beamtime,"",token,60000)
+consumer = asapo_consumer.create_consumer(source,path,True, beamtime,"",token,60000)
 
 
 if group_id == "new":
-    group_id_new = broker.generate_group_id()
+    group_id_new = consumer.generate_group_id()
     print ('generated group id: ', group_id_new)
 else:
     group_id_new = group_id
 
-_, meta = broker.get_next(group_id_new, meta_only=True)
+_, meta = consumer.get_next(group_id_new, meta_only=True)
 print ('filename: ', meta['name'])
 print ('meta: ', json.dumps(meta, indent=4, sort_keys=True))
 
 try:
-    beamtime_meta = broker.get_beamtime_meta()
+    beamtime_meta = consumer.get_beamtime_meta()
     print ('beamtime meta: ', json.dumps(beamtime_meta, indent=4, sort_keys=True))
 except asapo_consumer.AsapoError as err:
     print ('error getting beamtime meta: ', err)
diff --git a/examples/consumer/simple-consumer/consume.cpp b/examples/consumer/simple-consumer/consume.cpp
index 8df37f0ce6d3f7f81837c25ba62766ea3c3bfaba..a0a3b6d392e42594d32f1456d3e9a14fd4382094 100644
--- a/examples/consumer/simple-consumer/consume.cpp
+++ b/examples/consumer/simple-consumer/consume.cpp
@@ -14,17 +14,17 @@ int main(int argc, char* argv[]) {
     auto beamtime = "asapo_test";
     auto token = "KmUDdacgBzaOD3NIJvN1NmKGqWKtx0DK-NyPjdpeWkc=";
 
-    auto broker = asapo::DataBrokerFactory::CreateServerBroker(endpoint, "", true, asapo::SourceCredentials{beamtime, "", "", token}, &err);
+    auto consumer = asapo::ConsumerFactory::CreateConsumer(endpoint, "", true, asapo::SourceCredentials{beamtime, "", "", token}, &err);
     exit_if_error("Cannot create consumer", err);
-    broker->SetTimeout((uint64_t) 1000);
+    consumer->SetTimeout((uint64_t) 1000);
 
-    auto group_id = broker->GenerateNewGroupId(&err);
+    auto group_id = consumer->GenerateNewGroupId(&err);
     exit_if_error("Cannot create group id", err);
 
     asapo::FileInfo fi;
     asapo::FileData data;
 
-    err = broker->GetLast(&fi, group_id, &data);
+    err = consumer->GetLast(&fi, group_id, &data);
     exit_if_error("Cannot get next record", err);
 
     std::cout << "id: " << fi.id << std::endl;
diff --git a/examples/pipeline/in_to_out/in_to_out.cpp b/examples/pipeline/in_to_out/in_to_out.cpp
index 50b21ca13274cdf2a5b1b144f8bfdfc24f776642..06907afb8a4ec9e372b15a1614252ef24e4ff687 100644
--- a/examples/pipeline/in_to_out/in_to_out.cpp
+++ b/examples/pipeline/in_to_out/in_to_out.cpp
@@ -16,7 +16,7 @@
 
 using std::chrono::system_clock;
 using asapo::Error;
-using BrokerPtr = std::unique_ptr<asapo::DataBroker>;
+using ConsumerPtr = std::unique_ptr<asapo::Consumer>;
 using ProducerPtr = std::unique_ptr<asapo::Producer>;
 std::string group_id = "";
 std::mutex lock_in, lock_out;
@@ -64,31 +64,33 @@ int ProcessError(const Error& err) {
     return err == asapo::ConsumerErrorTemplates::kEndOfStream ? 0 : 1;
 }
 
-BrokerPtr CreateBrokerAndGroup(const Args& args, Error* err) {
-    auto broker = asapo::DataBrokerFactory::CreateServerBroker(args.server, args.file_path, true,
-                  asapo::SourceCredentials{asapo::SourceType::kProcessed,args.beamtime_id, "", args.stream_in, args.token}, err);
+ConsumerPtr CreateConsumerAndGroup(const Args& args, Error* err) {
+    auto consumer = asapo::ConsumerFactory::CreateConsumer(args.server, args.file_path, true,
+                                                         asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                  args.beamtime_id, "", args.stream_in,
+                                                                                  args.token}, err);
     if (*err) {
         return nullptr;
     }
 
-    broker->SetTimeout((uint64_t) args.timeout_ms);
+    consumer->SetTimeout((uint64_t) args.timeout_ms);
 
     lock_in.lock();
 
     if (group_id.empty()) {
-        group_id = broker->GenerateNewGroupId(err);
+        group_id = consumer->GenerateNewGroupId(err);
         if (*err) {
             lock_in.unlock();
             return nullptr;
         }
     }
     lock_in.unlock();
-    return broker;
+    return consumer;
 }
 
-void GetBeamtimeMeta(const BrokerPtr& broker) {
+void GetBeamtimeMeta(const ConsumerPtr& consumer) {
     Error err;
-    auto meta = broker->GetBeamtimeMeta(&err);
+    auto meta = consumer->GetBeamtimeMeta(&err);
     if (err == nullptr) {
         std::cout << meta << std::endl;
     } else {
@@ -121,11 +123,11 @@ void SendDataDownstreamThePipeline(const Args& args, const asapo::FileInfo& fi,
     }
 }
 
-Error ProcessNextEvent(const Args& args, const BrokerPtr& broker, const ProducerPtr& producer) {
+Error ProcessNextEvent(const Args& args, const ConsumerPtr& consumer, const ProducerPtr& producer) {
     asapo::FileData data;
     asapo::FileInfo fi;
 
-    auto err = broker->GetNext(&fi, group_id, args.transfer_data ? &data : nullptr);
+    auto err = consumer->GetNext(&fi, group_id, args.transfer_data ? &data : nullptr);
     if (err) {
         return err;
     }
@@ -141,14 +143,14 @@ std::vector<std::thread> StartConsumerThreads(const Args& args, const ProducerPt
     auto exec_next = [&args, nfiles, errors, &producer ](int i) {
         asapo::FileInfo fi;
         Error err;
-        auto broker = CreateBrokerAndGroup(args, &err);
+        auto consumer = CreateConsumerAndGroup(args, &err);
         if (err) {
             (*errors)[i] += ProcessError(err);
             return;
         }
 
         while (true) {
-            auto err = ProcessNextEvent(args, broker, producer);
+            auto err = ProcessNextEvent(args, consumer, producer);
             if (err) {
                 (*errors)[i] += ProcessError(err);
                 if (err == asapo::ConsumerErrorTemplates::kEndOfStream || err == asapo::ConsumerErrorTemplates::kWrongInput) {
@@ -201,7 +203,7 @@ std::unique_ptr<asapo::Producer> CreateProducer(const Args& args) {
 }
 
 int main(int argc, char* argv[]) {
-    asapo::ExitAfterPrintVersionIfNeeded("GetNext Broker Example", argc, argv);
+    asapo::ExitAfterPrintVersionIfNeeded("GetNext consumer Example", argc, argv);
     Args args;
     if (argc != 11) {
         std::cout << "Usage: " + std::string{argv[0]}
diff --git a/examples/pipeline/in_to_out_python/in_to_out.py b/examples/pipeline/in_to_out_python/in_to_out.py
index e2b096337c563fd46921e67369effe712882da8f..7534a5fdc1b9806324bdade16c0ab479b0e7ddfe 100644
--- a/examples/pipeline/in_to_out_python/in_to_out.py
+++ b/examples/pipeline/in_to_out_python/in_to_out.py
@@ -26,11 +26,11 @@ timeout_s_producer=int(timeout_s_producer)
 nthreads=int(nthreads)
 transfer_data=int(transfer_data)>0
 
-broker = asapo_consumer.create_server_broker(source,path, True,beamtime,stream_in,token,timeout_s*1000)
+consumer = asapo_consumer.create_consumer(source,path, True,beamtime,stream_in,token,timeout_s*1000)
 
 producer  = asapo_producer.create_producer(source,'processed',beamtime,'auto', stream_out, token, nthreads, 600)
 
-group_id  = broker.generate_group_id()
+group_id  = consumer.generate_group_id()
 
 n_recv = 0
 
@@ -41,7 +41,7 @@ else:
 
 while True:
     try:
-        data, meta = broker.get_next(group_id, meta_only=not transfer_data)
+        data, meta = consumer.get_next(group_id, meta_only=not transfer_data)
         print ("received: ",meta)
         n_recv = n_recv + 1
         producer.send_data(meta['_id'],meta['name']+"_"+stream_out ,data,
diff --git a/producer/api/cpp/include/asapo/asapo_producer.h b/producer/api/cpp/include/asapo/asapo_producer.h
index 83c074692c0b76ad3c952ac7b6a75bf22382ef1d..1e5ea176cd474cfb25e98e0523ea16ee0ac0418b 100644
--- a/producer/api/cpp/include/asapo/asapo_producer.h
+++ b/producer/api/cpp/include/asapo/asapo_producer.h
@@ -1,14 +1,3 @@
-/** @defgroup producer The Producer Group
- *  This is the producer group
- *  @{
- */
-/** @} */ // end of producer
-
-/**
-* @file asapo_producer.h
-* @ingroup producer
-*/
-
 #ifndef ASAPO_ASAPO_PRODUCER_H
 #define ASAPO_ASAPO_PRODUCER_H
 
diff --git a/producer/api/cpp/include/asapo/producer/producer.h b/producer/api/cpp/include/asapo/producer/producer.h
index 7c22bfd34d8808638be54efb8d7e44da46fcc806..272a4f75b86123f635774f0bf8c3b08262746aa2 100644
--- a/producer/api/cpp/include/asapo/producer/producer.h
+++ b/producer/api/cpp/include/asapo/producer/producer.h
@@ -10,7 +10,6 @@
 
 namespace asapo {
 
-/** @ingroup producer */
 class Producer {
   public:
     //! Creates a new producer
diff --git a/tests/automatic/bug_fixes/consumer_python_memleak/memleak.py b/tests/automatic/bug_fixes/consumer_python_memleak/memleak.py
index 4968462ec4306d2e3378a58c445ed04267d316e5..9055a4c700bb161eb990dbc449d6afbd4b8be3b2 100644
--- a/tests/automatic/bug_fixes/consumer_python_memleak/memleak.py
+++ b/tests/automatic/bug_fixes/consumer_python_memleak/memleak.py
@@ -4,15 +4,15 @@ import time
 
 source, path, beamtime, token = sys.argv[1:]
 
-broker = asapo_consumer.create_server_broker(
+consumer = asapo_consumer.create_consumer(
     source, path,True, beamtime, "source", token, 1000)
 
-group_id  = broker.generate_group_id()
+group_id  = consumer.generate_group_id()
 print('generated group id: ', group_id)
 
 while True:
     try:
-        data, meta  = broker.get_last(group_id, meta_only=False)
+        data, meta  = consumer.get_last(group_id, meta_only=False)
         print('filename: ', meta['name'])
     except Exception as err:
         print('err: ', err)
diff --git a/tests/automatic/bug_fixes/producer_send_after_restart/CMakeLists.txt b/tests/automatic/bug_fixes/producer_send_after_restart/CMakeLists.txt
index cea0d39ae010441c92bb22e191294998d5fc32d8..e974aa40b4671c5f42f49f5f36fa86d1c89e352d 100644
--- a/tests/automatic/bug_fixes/producer_send_after_restart/CMakeLists.txt
+++ b/tests/automatic/bug_fixes/producer_send_after_restart/CMakeLists.txt
@@ -13,4 +13,4 @@ endif()
 
 configure_file(test.json.in test.json @ONLY)
 
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/bug_fixes/receiver_cpu_usage/CMakeLists.txt b/tests/automatic/bug_fixes/receiver_cpu_usage/CMakeLists.txt
index f6bf9f8cfb1b26ca6b7fe568a41d61e641a76c11..15daad97f8c7aaf2a3068d839b12902da6a2ded3 100644
--- a/tests/automatic/bug_fixes/receiver_cpu_usage/CMakeLists.txt
+++ b/tests/automatic/bug_fixes/receiver_cpu_usage/CMakeLists.txt
@@ -8,4 +8,4 @@ set (ROOT_PATH "/tmp/asapo/")
 
 configure_file(test.json.in test.json @ONLY)
 
-add_script_test("${TARGET_NAME}" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
+add_script_test("${TARGET_NAME}" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.cpp b/tests/automatic/consumer/consumer_api/consumer_api.cpp
index 6e2b04f86ac45b4e20c87f8c861f68802efd3b8b..d5994af5ef735eb5c961e4a8338d1686e3da8395 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.cpp
+++ b/tests/automatic/consumer/consumer_api/consumer_api.cpp
@@ -3,7 +3,7 @@
 #include <thread>
 #include <algorithm>
 #include <asapo/asapo_consumer.h>
-#include "asapo/consumer/data_broker.h"
+#include "asapo/consumer/consumer.h"
 #include "testing.h"
 
 struct Args {
@@ -27,11 +27,11 @@ Args GetArgs(int argc, char* argv[]) {
 }
 
 
-void TestSingle(const std::unique_ptr<asapo::DataBroker>& broker, const std::string& group_id) {
+void TestSingle(const std::unique_ptr<asapo::Consumer>& consumer, const std::string& group_id) {
     asapo::FileInfo fi;
     asapo::Error err;
 
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     if (err) {
         std::cout << err->Explain() << std::endl;
     }
@@ -40,88 +40,88 @@ void TestSingle(const std::unique_ptr<asapo::DataBroker>& broker, const std::str
     M_AssertTrue(fi.metadata == "{\"test\":10}", "GetNext metadata");
 
     asapo::FileData data;
-    err = broker->RetrieveData(&fi, &data);
+    err = consumer->RetrieveData(&fi, &data);
     M_AssertTrue(err == nullptr, "RetrieveData no error");
     M_AssertEq("hello1", std::string(data.get(), data.get() + fi.size));
 
 
-    err = broker->GetLast(&fi, nullptr);
+    err = consumer->GetLast(&fi, nullptr);
     M_AssertTrue(err == nullptr, "GetLast no error");
     M_AssertTrue(fi.name == "10", "GetLast filename");
     M_AssertTrue(fi.metadata == "{\"test\":10}", "GetLast metadata");
 
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNext2 no error");
     M_AssertTrue(fi.name == "2", "GetNext2 filename");
 
 
-    err = broker->SetLastReadMarker(2, group_id);
+    err = consumer->SetLastReadMarker(2, group_id);
     M_AssertTrue(err == nullptr, "SetLastReadMarker no error");
 
 
-    err = broker->GetById(8, &fi, nullptr);
+    err = consumer->GetById(8, &fi, nullptr);
     M_AssertTrue(err == nullptr, "GetById error");
     M_AssertTrue(fi.name == "8", "GetById filename");
 
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNext After GetById  no error");
     M_AssertTrue(fi.name == "3", "GetNext After GetById filename");
 
 
-    err = broker->GetLast(&fi, nullptr);
+    err = consumer->GetLast(&fi, nullptr);
     M_AssertTrue(err == nullptr, "GetLast2 no error");
 
 
-    err = broker->SetLastReadMarker(8, group_id);
+    err = consumer->SetLastReadMarker(8, group_id);
     M_AssertTrue(err == nullptr, "SetLastReadMarker 2 no error");
 
 
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNext3 no error");
     M_AssertTrue(fi.name == "9", "GetNext3 filename");
 
-    auto size = broker->GetCurrentSize(&err);
+    auto size = consumer->GetCurrentSize(&err);
     M_AssertTrue(err == nullptr, "GetCurrentSize no error");
     M_AssertTrue(size == 10, "GetCurrentSize size");
 
-    err = broker->ResetLastReadMarker(group_id);
+    err = consumer->ResetLastReadMarker(group_id);
     M_AssertTrue(err == nullptr, "SetLastReadMarker");
 
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNext4 no error");
     M_AssertTrue(fi.name == "1", "GetNext4 filename");
 
-    auto group_id2 = broker->GenerateNewGroupId(&err);
-    err = broker->GetNext(&fi, group_id2, nullptr);
+    auto group_id2 = consumer->GenerateNewGroupId(&err);
+    err = consumer->GetNext(&fi, group_id2, nullptr);
     M_AssertTrue(err == nullptr, "GetNext5 no error");
     M_AssertTrue(fi.name == "1", "GetNext5  filename");
 
-    auto images = broker->QueryImages("meta.test = 10", &err);
+    auto images = consumer->QueryImages("meta.test = 10", &err);
     M_AssertTrue(err == nullptr, "query1");
     M_AssertTrue(images.size() == 10, "size of query answer 1");
 
-    images = broker->QueryImages("meta.test = 10 AND name='1'", &err);
+    images = consumer->QueryImages("meta.test = 10 AND name='1'", &err);
     M_AssertTrue(err == nullptr, "query2");
     M_AssertTrue(images.size() == 1, "size of query answer 2");
     M_AssertTrue(fi.name == "1", "GetNext5  filename");
 
 
-    images = broker->QueryImages("meta.test = 11", &err);
+    images = consumer->QueryImages("meta.test = 11", &err);
     M_AssertTrue(err == nullptr, "query3");
     M_AssertTrue(images.size() == 0, "size of query answer 3");
 
-    images = broker->QueryImages("meta.test = 18", &err);
+    images = consumer->QueryImages("meta.test = 18", &err);
     M_AssertTrue(err == nullptr, "query4");
     M_AssertTrue(images.size() == 0, "size of query answer 4");
 
-    images = broker->QueryImages("bla", &err);
+    images = consumer->QueryImages("bla", &err);
     M_AssertTrue(err != nullptr, "query5");
     M_AssertTrue(images.size() == 0, "size of query answer 5");
 
 
 //streams
 
-    err = broker->GetNext(&fi, group_id, "stream1", nullptr);
+    err = consumer->GetNext(&fi, group_id, "stream1", nullptr);
     if (err) {
         std::cout << err->Explain() << std::endl;
     }
@@ -129,11 +129,11 @@ void TestSingle(const std::unique_ptr<asapo::DataBroker>& broker, const std::str
     M_AssertTrue(err == nullptr, "GetNext stream1 no error");
     M_AssertTrue(fi.name == "11", "GetNext stream1 filename");
 
-    err = broker->GetNext(&fi, group_id, "stream2", nullptr);
+    err = consumer->GetNext(&fi, group_id, "stream2", nullptr);
     M_AssertTrue(err == nullptr, "GetNext stream2 no error");
     M_AssertTrue(fi.name == "21", "GetNext stream2 filename");
 
-    auto streams = broker->GetStreamList("",&err);
+    auto streams = consumer->GetStreamList("",&err);
     M_AssertTrue(err == nullptr, "GetStreamList no error");
     M_AssertTrue(streams.size() == 3, "streams.size");
     M_AssertTrue(streams[0].name == "default", "streams0.name1");
@@ -148,65 +148,65 @@ void TestSingle(const std::unique_ptr<asapo::DataBroker>& broker, const std::str
     M_AssertTrue(asapo::NanosecsEpochFromTimePoint(streams[2].timestamp_created) == 2000, "streams2.timestamp");
 // acknowledges
 
-    auto id = broker->GetLastAcknowledgedTulpeId(group_id, &err);
+    auto id = consumer->GetLastAcknowledgedTulpeId(group_id, &err);
     M_AssertTrue(err == asapo::ConsumerErrorTemplates::kNoData, "last ack default stream no data");
     M_AssertTrue(id == 0, "last ack default stream no data id = 0");
 
-    auto nacks = broker->GetUnacknowledgedTupleIds(group_id, 0, 0, &err);
+    auto nacks = consumer->GetUnacknowledgedTupleIds(group_id, 0, 0, &err);
     M_AssertTrue(err == nullptr, "nacks default stream all");
     M_AssertTrue(nacks.size() == 10, "nacks default stream size = 10");
 
-    err = broker->Acknowledge(group_id, 1);
+    err = consumer->Acknowledge(group_id, 1);
     M_AssertTrue(err == nullptr, "ack default stream no error");
 
-    nacks = broker->GetUnacknowledgedTupleIds(group_id, 0, 0, &err);
+    nacks = consumer->GetUnacknowledgedTupleIds(group_id, 0, 0, &err);
     M_AssertTrue(nacks.size() == 9, "nacks default stream size = 9 after ack");
 
-    id = broker->GetLastAcknowledgedTulpeId(group_id, &err);
+    id = consumer->GetLastAcknowledgedTulpeId(group_id, &err);
     M_AssertTrue(err == nullptr, "last ack default stream no error");
     M_AssertTrue(id == 1, "last ack default stream id = 1");
 
-    err = broker->Acknowledge(group_id, 1, "stream1");
+    err = consumer->Acknowledge(group_id, 1, "stream1");
     M_AssertTrue(err == nullptr, "ack stream1 no error");
 
-    nacks = broker->GetUnacknowledgedTupleIds(group_id, "stream1", 0, 0, &err);
+    nacks = consumer->GetUnacknowledgedTupleIds(group_id, "stream1", 0, 0, &err);
     M_AssertTrue(nacks.size() == 4, "nacks stream1 size = 4 after ack");
 
 // negative acks
-    broker->ResetLastReadMarker(group_id);
-    err = broker->GetNext(&fi, group_id, nullptr);
+    consumer->ResetLastReadMarker(group_id);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNextNegAckBeforeResend no error");
     M_AssertTrue(fi.name == "1", "GetNextNegAckBeforeResend filename");
-    err = broker->NegativeAcknowledge(group_id, 1, 0);
+    err = consumer->NegativeAcknowledge(group_id, 1, 0);
     M_AssertTrue(err == nullptr, "NegativeAcknowledge no error");
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNextNegAckWithResend no error");
     M_AssertTrue(fi.name == "1", "GetNextNegAckWithResend filename");
 
 // automatic resend
-    broker->ResetLastReadMarker(group_id);
-    broker->SetResendNacs(true, 0, 1);
-    err = broker->GetNext(&fi, group_id, nullptr);
+    consumer->ResetLastReadMarker(group_id);
+    consumer->SetResendNacs(true, 0, 1);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNextBeforeResend no error");
     M_AssertTrue(fi.name == "1", "GetNextBeforeResend filename");
 
-    err = broker->GetNext(&fi, group_id, nullptr);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNextWithResend no error");
     M_AssertTrue(fi.name == "1", "GetNextWithResend filename");
 
-    broker->SetResendNacs(false, 0, 1);
-    err = broker->GetNext(&fi, group_id, nullptr);
+    consumer->SetResendNacs(false, 0, 1);
+    err = consumer->GetNext(&fi, group_id, nullptr);
     M_AssertTrue(err == nullptr, "GetNextAfterResend no error");
     M_AssertTrue(fi.name == "2", "GetNextAfterResend filename");
 
 }
 
 
-void TestDataset(const std::unique_ptr<asapo::DataBroker>& broker, const std::string& group_id) {
+void TestDataset(const std::unique_ptr<asapo::Consumer>& consumer, const std::string& group_id) {
     asapo::FileInfo fi;
     asapo::Error err;
 
-    auto dataset = broker->GetNextDataset(group_id, 0, &err);
+    auto dataset = consumer->GetNextDataset(group_id, 0, &err);
     if (err) {
         std::cout << err->Explain() << std::endl;
     }
@@ -217,30 +217,30 @@ void TestDataset(const std::unique_ptr<asapo::DataBroker>& broker, const std::st
     M_AssertTrue(dataset.content[0].metadata == "{\"test\":10}", "GetNext metadata");
 
     asapo::FileData data;
-    err = broker->RetrieveData(&dataset.content[0], &data);
+    err = consumer->RetrieveData(&dataset.content[0], &data);
     M_AssertTrue(err == nullptr, "RetrieveData no error");
     M_AssertEq("hello1", std::string(data.get(), data.get() + dataset.content[0].size));
 
 
-    dataset = broker->GetLastDataset(0, &err);
+    dataset = consumer->GetLastDataset(0, &err);
     M_AssertTrue(err == nullptr, "GetLast no error");
     M_AssertTrue(dataset.content[0].name == "10_1", "GetLastDataset filename");
     M_AssertTrue(dataset.content[0].metadata == "{\"test\":10}", "GetLastDataset metadata");
 
-    dataset = broker->GetNextDataset(group_id, 0, &err);
+    dataset = consumer->GetNextDataset(group_id, 0, &err);
     M_AssertTrue(err == nullptr, "GetNextDataset2 no error");
     M_AssertTrue(dataset.content[0].name == "2_1", "GetNextDataSet2 filename");
 
-    dataset = broker->GetLastDataset(0, &err);
+    dataset = consumer->GetLastDataset(0, &err);
     M_AssertTrue(err == nullptr, "GetLastDataset2 no error");
 
-    dataset = broker->GetDatasetById(8, 0, &err);
+    dataset = consumer->GetDatasetById(8, 0, &err);
     M_AssertTrue(err == nullptr, "GetDatasetById error");
     M_AssertTrue(dataset.content[2].name == "8_3", "GetDatasetById filename");
 
 // incomplete datasets without min_size
 
-    dataset = broker->GetNextDataset(group_id,"incomplete",0,&err);
+    dataset = consumer->GetNextDataset(group_id,"incomplete",0,&err);
     M_AssertTrue(err == asapo::ConsumerErrorTemplates::kPartialData, "GetNextDataset incomplete error");
     M_AssertTrue(dataset.content.size() == 2, "GetNextDataset incomplete size");
     M_AssertTrue(dataset.content[0].name == "1_1", "GetNextDataset incomplete filename");
@@ -250,24 +250,24 @@ void TestDataset(const std::unique_ptr<asapo::DataBroker>& broker, const std::st
     M_AssertTrue(dataset.expected_size == 3, "GetDatasetById expected size");
     M_AssertTrue(dataset.id == 1, "GetDatasetById expected id");
 
-    dataset = broker->GetLastDataset("incomplete", 0, &err);
+    dataset = consumer->GetLastDataset("incomplete", 0, &err);
     M_AssertTrue(err == asapo::ConsumerErrorTemplates::kEndOfStream, "GetLastDataset incomplete no data");
 
-    dataset = broker->GetDatasetById(2, "incomplete", 0, &err);
+    dataset = consumer->GetDatasetById(2, "incomplete", 0, &err);
     M_AssertTrue(err == asapo::ConsumerErrorTemplates::kPartialData, "GetDatasetById incomplete error");
     M_AssertTrue(dataset.content[0].name == "2_1", "GetDatasetById incomplete filename");
 
 // incomplete datasets with min_size
 
-    dataset = broker->GetNextDataset(group_id,"incomplete",2,&err);
+    dataset = consumer->GetNextDataset(group_id,"incomplete",2,&err);
     M_AssertTrue(err == nullptr, "GetNextDataset incomplete minsize error");
     M_AssertTrue(dataset.id == 2, "GetDatasetById minsize id");
 
-    dataset = broker->GetLastDataset("incomplete", 2, &err);
+    dataset = consumer->GetLastDataset("incomplete", 2, &err);
     M_AssertTrue(err == nullptr, "GetNextDataset incomplete minsize error");
     M_AssertTrue(dataset.id == 5, "GetLastDataset minsize id");
 
-    dataset = broker->GetDatasetById(2, "incomplete", 2, &err);
+    dataset = consumer->GetDatasetById(2, "incomplete", 2, &err);
     M_AssertTrue(err == nullptr, "GetDatasetById incomplete minsize error");
     M_AssertTrue(dataset.content[0].name == "2_1", "GetDatasetById incomplete minsize filename");
 
@@ -276,21 +276,25 @@ void TestDataset(const std::unique_ptr<asapo::DataBroker>& broker, const std::st
 
 void TestAll(const Args& args) {
     asapo::Error err;
-    auto broker = asapo::DataBrokerFactory::CreateServerBroker(args.server, ".", true,
-                  asapo::SourceCredentials{asapo::SourceType::kProcessed,args.run_name, "", "", args.token}, &err);
+    auto consumer = asapo::ConsumerFactory::CreateConsumer(args.server,
+                                                         ".",
+                                                         true,
+                                                         asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                  args.run_name, "", "", args.token},
+                                                         &err);
     if (err) {
-        std::cout << "Error CreateServerBroker: " << err << std::endl;
+        std::cout << "Error CreateConsumer: " << err << std::endl;
         exit(EXIT_FAILURE);
     }
 
-    broker->SetTimeout(100);
-    auto group_id = broker->GenerateNewGroupId(&err);
+    consumer->SetTimeout(100);
+    auto group_id = consumer->GenerateNewGroupId(&err);
 
     if (args.datasets == "single") {
-        TestSingle(broker, group_id);
+        TestSingle(consumer, group_id);
     }
     if (args.datasets == "dataset") {
-        TestDataset(broker, group_id);
+        TestDataset(consumer, group_id);
     }
 
 }
diff --git a/tests/automatic/consumer/consumer_api_python/consumer_api.py b/tests/automatic/consumer/consumer_api_python/consumer_api.py
index 4ccb7c0b5f52488872a7807ddd2ded197ecced81..7f49428220369584f00f2145429bb5fbcf7f52ee 100644
--- a/tests/automatic/consumer/consumer_api_python/consumer_api.py
+++ b/tests/automatic/consumer/consumer_api_python/consumer_api.py
@@ -38,69 +38,69 @@ def assert_eq(val, expected, name):
         sys.exit(1)
 
 
-def check_file_transfer_service(broker, group_id):
-    broker.set_timeout(1000)
-    data, meta = broker.get_by_id(1, meta_only=False)
+def check_file_transfer_service(consumer, group_id):
+    consumer.set_timeout(1000)
+    data, meta = consumer.get_by_id(1, meta_only=False)
     assert_eq(data.tostring().decode("utf-8"), "hello1", "check_file_transfer_service ok")
-    data, meta = broker.get_by_id(1, "streamfts", meta_only=False)
+    data, meta = consumer.get_by_id(1, "streamfts", meta_only=False)
     assert_eq(data.tostring().decode("utf-8"), "hello1", "check_file_transfer_service with auto size ok")
 
 
-def check_single(broker, group_id):
+def check_single(consumer, group_id):
     global thread_res
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "1", "get next1")
     assert_usermetadata(meta, "get next1")
 
-    broker.set_timeout(1000)
+    consumer.set_timeout(1000)
 
-    data = broker.retrieve_data(meta)
+    data = consumer.retrieve_data(meta)
     assert_eq(data.tostring().decode("utf-8"), "hello1", "retrieve_data data")
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "2", "get next2")
     assert_usermetadata(meta, "get next2")
 
-    _, meta = broker.get_last(meta_only=True)
+    _, meta = consumer.get_last(meta_only=True)
     assert_metaname(meta, "5", "get last1")
     assert_usermetadata(meta, "get last1")
 
     try:
-        broker.get_by_id(30, meta_only=True)
+        consumer.get_by_id(30, meta_only=True)
     except asapo_consumer.AsapoEndOfStreamError:
         pass
     else:
         exit_on_noerr("get_by_id no data")
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "3", "get next3")
 
 
-    size = broker.get_current_size()
+    size = consumer.get_current_size()
     assert_eq(size, 5, "get_current_size")
 
-    broker.reset_lastread_marker(group_id)
+    consumer.reset_lastread_marker(group_id)
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "1", "get next4")
     assert_usermetadata(meta, "get next4")
 
-    _, meta = broker.get_by_id(3, meta_only=True)
+    _, meta = consumer.get_by_id(3, meta_only=True)
     assert_metaname(meta, "3", "get get_by_id")
     assert_usermetadata(meta, "get get_by_id")
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "2", "get next5")
     assert_usermetadata(meta, "get next5")
 
-    broker.set_lastread_marker(4, group_id)
+    consumer.set_lastread_marker(4, group_id)
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "5", "get next6")
     assert_usermetadata(meta, "get next6")
 
     try:
-        broker.get_next("_wrong_group_name", meta_only=True)
+        consumer.get_next("_wrong_group_name", meta_only=True)
     except asapo_consumer.AsapoWrongInputError as err:
         print(err)
         pass
@@ -108,20 +108,20 @@ def check_single(broker, group_id):
         exit_on_noerr("should give wrong input error")
 
     try:
-        broker.get_last(meta_only=False)
+        consumer.get_last(meta_only=False)
     except asapo_consumer.AsapoLocalIOError as err:
         print(err)
         pass
     else:
         exit_on_noerr("io error")
 
-    _, meta = broker.get_next(group_id, "stream1", meta_only=True)
+    _, meta = consumer.get_next(group_id, "stream1", meta_only=True)
     assert_metaname(meta, "11", "get next stream1")
 
-    _, meta = broker.get_next(group_id, "stream2", meta_only=True)
+    _, meta = consumer.get_next(group_id, "stream2", meta_only=True)
     assert_metaname(meta, "21", "get next stream2")
 
-    streams = broker.get_stream_list("")
+    streams = consumer.get_stream_list("")
     assert_eq(len(streams), 4, "number of streams")
     print(streams)
     assert_eq(streams[0]["name"], "default", "streams_name1")
@@ -132,82 +132,82 @@ def check_single(broker, group_id):
 
     # acks
     try:
-        id = broker.get_last_acknowledged_tuple_id(group_id)
+        id = consumer.get_last_acknowledged_tuple_id(group_id)
     except asapo_consumer.AsapoNoDataError as err:
         print(err)
         pass
     else:
         exit_on_noerr("get_last_acknowledged_tuple_id")
 
-    nacks = broker.get_unacknowledged_tuple_ids(group_id)
+    nacks = consumer.get_unacknowledged_tuple_ids(group_id)
     assert_eq(len(nacks), 5, "nacks default stream size = 5")
 
-    broker.acknowledge(group_id, 1)
+    consumer.acknowledge(group_id, 1)
 
-    nacks = broker.get_unacknowledged_tuple_ids(group_id)
+    nacks = consumer.get_unacknowledged_tuple_ids(group_id)
     assert_eq(len(nacks), 4, "nacks default stream size = 4")
 
-    id = broker.get_last_acknowledged_tuple_id(group_id)
+    id = consumer.get_last_acknowledged_tuple_id(group_id)
     assert_eq(id, 1, "last ack default stream id = 1")
 
-    broker.acknowledge(group_id, 1, "stream1")
-    nacks = broker.get_unacknowledged_tuple_ids(group_id)
+    consumer.acknowledge(group_id, 1, "stream1")
+    nacks = consumer.get_unacknowledged_tuple_ids(group_id)
     assert_eq(len(nacks), 4, "nacks stream1 size = 4 after ack")
 
     # neg acks
-    broker.reset_lastread_marker(group_id)
-    _, meta = broker.get_next(group_id, meta_only=True)
+    consumer.reset_lastread_marker(group_id)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "1", "get next neg ack before resend")
-    broker.reset_lastread_marker(group_id)
-    _, meta = broker.get_next(group_id, meta_only=True)
+    consumer.reset_lastread_marker(group_id)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "1", "get next neg ack with resend")
 
     # resend
-    broker.reset_lastread_marker(group_id)
-    broker.set_resend_nacs(True, 0, 1)
-    _, meta = broker.get_next(group_id, meta_only=True)
+    consumer.reset_lastread_marker(group_id)
+    consumer.set_resend_nacs(True, 0, 1)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "1", "get next before resend")
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "1", "get next with resend")
 
-    _, meta = broker.get_next(group_id, meta_only=True)
+    _, meta = consumer.get_next(group_id, meta_only=True)
     assert_metaname(meta, "2", "get next after resend")
 
     # images
 
-    images = broker.query_images("meta.test = 10")
+    images = consumer.query_images("meta.test = 10")
     assert_eq(len(images), 5, "size of query answer 1")
     for image in images:
         assert_usermetadata(image, "query_images")
 
-    images = broker.query_images("meta.test = 10 AND name='1'")
+    images = consumer.query_images("meta.test = 10 AND name='1'")
     assert_eq(len(images), 1, "size of query answer 2 ")
 
     for image in images:
         assert_usermetadata(image, "query_images")
 
-    images = broker.query_images("meta.test = 11")
+    images = consumer.query_images("meta.test = 11")
     assert_eq(len(images), 0, "size of query answer 3 ")
 
     try:
-        images = broker.query_images("bla")
+        images = consumer.query_images("bla")
     except:
         pass
     else:
         exit_on_noerr("wrong query")
 
-    broker = asapo_consumer.create_server_broker("bla", path, True, beamtime, "", token, 1000)
+    consumer = asapo_consumer.create_consumer("bla", path, True, beamtime, "", token, 1000)
     try:
-        broker.get_last(meta_only=True)
+        consumer.get_last(meta_only=True)
     except asapo_consumer.AsapoUnavailableServiceError as err:
         print(err)
         pass
     else:
-        exit_on_noerr("AsapoBrokerServersNotFound")
+        exit_on_noerr("AsapoconsumerServersNotFound")
 
     try:
-        asapo_consumer.create_server_broker("", "", True, "", "", "", 1000)
+        asapo_consumer.create_consumer("", "", True, "", "", "", 1000)
     except asapo_consumer.AsapoWrongInputError as err:
         print(err)
         pass
@@ -216,10 +216,10 @@ def check_single(broker, group_id):
 
 # interrupt
     thread_res = 0
-    def long_call(broker):
+    def long_call(consumer):
         global thread_res
         try:
-            broker.get_last(meta_only=True)
+            consumer.get_last(meta_only=True)
             thread_res = 1
         except asapo_consumer.AsapoInterruptedTransactionError as err:
             global res
@@ -231,47 +231,47 @@ def check_single(broker, group_id):
             thread_res = 3
             pass
 
-    broker = asapo_consumer.create_server_broker("bla", path, True, beamtime, "", token, 60000)
-    t = Thread(target =  long_call, args =  (broker,) )
+    consumer = asapo_consumer.create_consumer("bla", path, True, beamtime, "", token, 60000)
+    t = Thread(target =  long_call, args =  (consumer,) )
     t.start()
     time.sleep(1)
-    broker.interrupt_current_operation()
+    consumer.interrupt_current_operation()
     t.join()
     assert_eq(thread_res, 2, "long call res")
 
 
 
-def check_dataset(broker, group_id):
-    res = broker.get_next_dataset(group_id)
+def check_dataset(consumer, group_id):
+    res = consumer.get_next_dataset(group_id)
     assert_eq(res['id'], 1, "get_next_dataset1")
     assert_metaname(res['content'][0], "1_1", "get nextdataset1 name1")
     assert_metaname(res['content'][1], "1_2", "get nextdataset1 name2")
     assert_usermetadata(res['content'][0], "get nextdataset1 meta")
 
-    broker.set_timeout(1000)
+    consumer.set_timeout(1000)
 
-    data = broker.retrieve_data(res['content'][0])
+    data = consumer.retrieve_data(res['content'][0])
     assert_eq(data.tostring().decode("utf-8"), "hello1", "retrieve_data from dataset data")
 
-    res = broker.get_next_dataset(group_id)
+    res = consumer.get_next_dataset(group_id)
     assert_eq(res['id'], 2, "get_next_dataset2")
     assert_metaname(res['content'][0], "2_1", "get nextdataset2 name1")
 
-    res = broker.get_last_dataset()
+    res = consumer.get_last_dataset()
     assert_eq(res['id'], 10, "get_last_dataset1")
     assert_eq(res['expected_size'], 3, "get_last_dataset1 size ")
     assert_metaname(res['content'][2], "10_3", "get get_last_dataset1 name3")
 
-    res = broker.get_next_dataset(group_id)
+    res = consumer.get_next_dataset(group_id)
     assert_eq(res['id'], 3, "get_next_dataset3")
 
-    res = broker.get_dataset_by_id(8)
+    res = consumer.get_dataset_by_id(8)
     assert_eq(res['id'], 8, "get_dataset_by_id1 id")
     assert_metaname(res['content'][2], "8_3", "get get_dataset_by_id1 name3")
 
     # incomplete datesets without min_size given
     try:
-        broker.get_next_dataset(group_id, "incomplete")
+        consumer.get_next_dataset(group_id, "incomplete")
     except asapo_consumer.AsapoPartialDataError as err:
         assert_eq(err.partial_data['expected_size'], 3, "get_next_dataset incomplete expected size")
         assert_eq(err.partial_data['id'], 1, "get_next_dataset incomplete id")
@@ -282,7 +282,7 @@ def check_dataset(broker, group_id):
         exit_on_noerr("get_next_dataset incomplete err")
 
     try:
-        broker.get_dataset_by_id(2, "incomplete")
+        consumer.get_dataset_by_id(2, "incomplete")
     except asapo_consumer.AsapoPartialDataError as err:
         assert_eq(err.partial_data['expected_size'], 3, "get_next_dataset incomplete expected size")
         assert_eq(err.partial_data['id'], 2, "get_next_dataset incomplete id")
@@ -293,37 +293,37 @@ def check_dataset(broker, group_id):
         exit_on_noerr("get_next_dataset incomplete err")
 
     try:
-        broker.get_last_dataset("incomplete")
+        consumer.get_last_dataset("incomplete")
     except asapo_consumer.AsapoEndOfStreamError as err:
         pass
     else:
         exit_on_noerr("get_last_dataset incomplete err")
     # incomplete with min_size given
-    res = broker.get_next_dataset(group_id, "incomplete", min_size=2)
+    res = consumer.get_next_dataset(group_id, "incomplete", min_size=2)
     assert_eq(res['id'], 2, "get_next_dataset incomplete with minsize")
 
-    res = broker.get_last_dataset("incomplete", min_size=2)
+    res = consumer.get_last_dataset("incomplete", min_size=2)
     assert_eq(res['id'], 5, "get_last_dataset incomplete with minsize")
 
-    res = broker.get_dataset_by_id(2, "incomplete", min_size=1)
+    res = consumer.get_dataset_by_id(2, "incomplete", min_size=1)
     assert_eq(res['id'], 2, "get_dataset_by_id incomplete with minsize")
 
 
 source, path, beamtime, token, mode = sys.argv[1:]
 
-broker = asapo_consumer.create_server_broker(source, path, True, beamtime, "", token, 60000)
-broker_fts = asapo_consumer.create_server_broker(source, path, False, beamtime, "", token, 60000)
+consumer = asapo_consumer.create_consumer(source, path, True, beamtime, "", token, 60000)
+consumer_fts = asapo_consumer.create_consumer(source, path, False, beamtime, "", token, 60000)
 
-group_id = broker.generate_group_id()
+group_id = consumer.generate_group_id()
 
-group_id_fts = broker_fts.generate_group_id()
+group_id_fts = consumer_fts.generate_group_id()
 
 if mode == "single":
-    check_single(broker, group_id)
-    check_file_transfer_service(broker_fts, group_id_fts)
+    check_single(consumer, group_id)
+    check_file_transfer_service(consumer_fts, group_id_fts)
 
 if mode == "datasets":
-    check_dataset(broker, group_id)
+    check_dataset(consumer, group_id)
 
 print("tests done")
 sys.exit(0)
diff --git a/tests/automatic/consumer/next_multithread_broker/next_multithread_broker.cpp b/tests/automatic/consumer/next_multithread_broker/next_multithread_broker.cpp
index 75a82ff03afc7a510046b5e55c0bea813cde14bb..f4e67411d6a2d94c11fadaed43f979dcc243a2fc 100644
--- a/tests/automatic/consumer/next_multithread_broker/next_multithread_broker.cpp
+++ b/tests/automatic/consumer/next_multithread_broker/next_multithread_broker.cpp
@@ -2,7 +2,7 @@
 #include <vector>
 #include <thread>
 #include <algorithm>
-#include "asapo/consumer/data_broker.h"
+#include "asapo/consumer/consumer.h"
 #include "testing.h"
 
 void Assert(std::vector<asapo::FileInfos> file_infos, int nthreads, int nfiles) {
@@ -53,18 +53,23 @@ Args GetArgs(int argc, char* argv[]) {
 
 void TestAll(const Args& args) {
     asapo::Error err;
-    auto broker = asapo::DataBrokerFactory::CreateServerBroker(args.server, "dummy", true, asapo::SourceCredentials{asapo::SourceType::kProcessed,args.run_name, "", "", args.token}, &err);
+    auto consumer = asapo::ConsumerFactory::CreateConsumer(args.server,
+                                                         "dummy",
+                                                         true,
+                                                         asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                  args.run_name, "", "", args.token},
+                                                         &err);
     if (err) {
-        std::cout << "Error CreateServerBroker: " << err << std::endl;
+        std::cout << "Error CreateConsumer: " << err << std::endl;
         exit(EXIT_FAILURE);
     }
 
-    auto group_id = broker->GenerateNewGroupId(&err);
-    broker->SetTimeout(10000);
+    auto group_id = consumer->GenerateNewGroupId(&err);
+    consumer->SetTimeout(10000);
     std::vector<asapo::FileInfos>file_infos(args.nthreads);
     auto exec_next = [&](int i) {
         asapo::FileInfo fi;
-        while ((err = broker->GetNext(&fi, group_id, nullptr)) == nullptr) {
+        while ((err = consumer->GetNext(&fi, group_id, nullptr)) == nullptr) {
             file_infos[i].emplace_back(fi);
         }
         printf("%s\n", err->Explain().c_str());
diff --git a/tests/automatic/curl_http_client/curl_http_client_command/curl_httpclient_command.cpp b/tests/automatic/curl_http_client/curl_http_client_command/curl_httpclient_command.cpp
index 730de4a472a46e52611368a095bd0883f06ab0ad..4e0fdc1450754595d221add00e7e6f287871f092 100644
--- a/tests/automatic/curl_http_client/curl_http_client_command/curl_httpclient_command.cpp
+++ b/tests/automatic/curl_http_client/curl_http_client_command/curl_httpclient_command.cpp
@@ -1,8 +1,8 @@
 #include <iostream>
 #include <vector>
-#include "asapo/consumer/data_broker.h"
+#include "asapo/consumer/consumer.h"
 #include "testing.h"
-#include "../../../consumer/api/cpp/src/server_data_broker.h"
+#include "../../../consumer/api/cpp/src/consumer_impl.h"
 #include "asapo/preprocessor/definitions.h"
 #include "asapo/io/io_factory.h"
 #include "asapo/io/io.h"
@@ -32,14 +32,19 @@ int main(int argc, char* argv[]) {
     std::string authorize_request = "{\"Folder\":\"" + args.folder + "\",\"BeamtimeId\":\"aaa\",\"Token\":\"" + token +
                                     "\"}";
     asapo::Error err;
-    auto broker = asapo::DataBrokerFactory::CreateServerBroker(args.uri_authorizer, "", true, asapo::SourceCredentials{asapo::SourceType::kProcessed,"", "", "", ""}, &err);
-    auto server_broker = static_cast<asapo::ServerDataBroker*>(broker.get());
+    auto consumer = asapo::ConsumerFactory::CreateConsumer(args.uri_authorizer,
+                                                         "",
+                                                         true,
+                                                         asapo::SourceCredentials{asapo::SourceType::kProcessed, "", "",
+                                                                                  "", ""},
+                                                         &err);
+    auto consumer_impl = static_cast<asapo::ConsumerImpl*>(consumer.get());
     M_AssertEq(nullptr, err);
 
     asapo::HttpCode code;
     std::string response;
     std::string input_data;
-    auto folder_token = server_broker->httpclient__->Post(args.uri_authorizer + "/folder", "", authorize_request, &code,
+    auto folder_token = consumer_impl->httpclient__->Post(args.uri_authorizer + "/folder", "", authorize_request, &code,
                         &err);
     M_AssertTrue(err == nullptr);
     M_AssertTrue(code == asapo::HttpCode::OK);
@@ -47,21 +52,21 @@ int main(int argc, char* argv[]) {
         std::cout << err->Explain();
     }
 
-    server_broker->httpclient__->Post(args.uri_authorizer + "/folder", "", "", &code, &err);
+    consumer_impl->httpclient__->Post(args.uri_authorizer + "/folder", "", "", &code, &err);
     M_AssertTrue(code == asapo::HttpCode::BadRequest);
 
-    server_broker->httpclient__->Post(args.uri_authorizer + "/bla", "", "", &code, &err);
+    consumer_impl->httpclient__->Post(args.uri_authorizer + "/bla", "", "", &code, &err);
     M_AssertTrue(code == asapo::HttpCode::NotFound);
 
 // check post with data
     std::string transfer = "{\"Folder\":\"" + args.folder + "\",\"FileName\":\"aaa\"}";
     std::string cookie = "Authorization=Bearer " + folder_token + ";";
-    auto content = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &code, &err);
+    auto content = consumer_impl->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &code, &err);
     M_AssertEq("hello", content);
     M_AssertTrue(code == asapo::HttpCode::OK);
 // with array
     asapo::FileData data;
-    err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, 5, &code);
+    err = consumer_impl->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, 5, &code);
     M_AssertEq( "hello", reinterpret_cast<char const*>(data.get()));
     M_AssertTrue(code == asapo::HttpCode::OK);
 
@@ -71,7 +76,7 @@ int main(int argc, char* argv[]) {
     uint64_t size = 0;
     auto expected_data = io->GetDataFromFile(fname, &size, &err);
     M_AssertEq(nullptr, err);
-    err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, size, &code);
+    err = consumer_impl->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, &data, size, &code);
     M_AssertTrue(code == asapo::HttpCode::OK);
     for (uint64_t i = 0; i < size; i++) {
         if (expected_data[i] != data[i]) {
@@ -81,11 +86,11 @@ int main(int argc, char* argv[]) {
 
 // with file
     transfer = "{\"Folder\":\"" + args.folder + "\",\"FileName\":\"aaa\"}";
-    err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "bbb", &code);
+    err = consumer_impl->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "bbb", &code);
     M_AssertTrue(code == asapo::HttpCode::OK);
 
     transfer = "{\"Folder\":\"" + args.folder + "\",\"FileName\":\"random\"}";
-    err = server_broker->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "random", &code);
+    err = consumer_impl->httpclient__->Post(args.uri_fts + "/transfer", cookie, transfer, "random", &code);
     M_AssertTrue(code == asapo::HttpCode::OK);
 
     return 0;
diff --git a/tests/automatic/full_chain/send_recv_streams/send_recv_streams.cpp b/tests/automatic/full_chain/send_recv_streams/send_recv_streams.cpp
index df74637c62ace96ea7825711ee2fb178609aa089..ed96f1484db175d3684b21176977914a1555cef0 100644
--- a/tests/automatic/full_chain/send_recv_streams/send_recv_streams.cpp
+++ b/tests/automatic/full_chain/send_recv_streams/send_recv_streams.cpp
@@ -14,7 +14,7 @@
 #include "asapo/asapo_producer.h"
 
 using asapo::Error;
-using BrokerPtr = std::unique_ptr<asapo::DataBroker>;
+using ConsumerPtr = std::unique_ptr<asapo::Consumer>;
 using ProducerPtr = std::unique_ptr<asapo::Producer>;
 std::string group_id = "";
 
@@ -34,22 +34,26 @@ void ProcessAfterSend(asapo::RequestCallbackPayload payload, asapo::Error err) {
     files_sent++;
 }
 
-BrokerPtr CreateBrokerAndGroup(const Args& args, Error* err) {
-    auto broker = asapo::DataBrokerFactory::CreateServerBroker(args.server, ".", true,
-                  asapo::SourceCredentials{asapo::SourceType::kProcessed,args.beamtime_id, "", "", args.token}, err);
+ConsumerPtr CreateConsumerAndGroup(const Args& args, Error* err) {
+    auto consumer = asapo::ConsumerFactory::CreateConsumer(args.server,
+                                                         ".",
+                                                         true,
+                                                         asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                  args.beamtime_id, "", "", args.token},
+                                                         err);
     if (*err) {
         return nullptr;
     }
 
-    broker->SetTimeout(10000);
+    consumer->SetTimeout(10000);
 
     if (group_id.empty()) {
-        group_id = broker->GenerateNewGroupId(err);
+        group_id = consumer->GenerateNewGroupId(err);
         if (*err) {
             return nullptr;
         }
     }
-    return broker;
+    return consumer;
 }
 
 ProducerPtr CreateProducer(const Args& args) {
@@ -69,7 +73,7 @@ ProducerPtr CreateProducer(const Args& args) {
 }
 
 int main(int argc, char* argv[]) {
-    asapo::ExitAfterPrintVersionIfNeeded("GetNext Broker Example", argc, argv);
+    asapo::ExitAfterPrintVersionIfNeeded("GetNext consumer Example", argc, argv);
     Args args;
     if (argc != 5) {
         std::cout << "Usage: " + std::string{argv[0]}
@@ -93,9 +97,9 @@ int main(int argc, char* argv[]) {
     producer->WaitRequestsFinished(10000);
 
     Error err;
-    auto consumer = CreateBrokerAndGroup(args, &err);
+    auto consumer = CreateConsumerAndGroup(args, &err);
     if (err) {
-        std::cout << "Error CreateBrokerAndGroup: " << err << std::endl;
+        std::cout << "Error CreateConsumerAndGroup: " << err << std::endl;
         exit(EXIT_FAILURE);
     }
 
diff --git a/tests/automatic/full_chain/send_recv_streams_python/send_recv_streams.py b/tests/automatic/full_chain/send_recv_streams_python/send_recv_streams.py
index 1fa5b57df4aa0b9d9198b5e8443497f20ad7e896..eea7495bcd63a299f5910e3e8b2dc9257e7de92c 100644
--- a/tests/automatic/full_chain/send_recv_streams_python/send_recv_streams.py
+++ b/tests/automatic/full_chain/send_recv_streams_python/send_recv_streams.py
@@ -25,11 +25,11 @@ def callback(header,err):
 
 source, beamtime, token = sys.argv[1:]
 
-broker = asapo_consumer.create_server_broker(source,".",True, beamtime,"",token,timeout)
+consumer = asapo_consumer.create_consumer(source,".",True, beamtime,"",token,timeout)
 producer  = asapo_producer.create_producer(source,'processed',beamtime,'auto', "", token, 1, 600)
 producer.set_log_level("debug")
 
-group_id  = broker.generate_group_id()
+group_id  = consumer.generate_group_id()
 
 n_send = 10
 
@@ -43,7 +43,7 @@ n_recv = 0
 stream_finished=False
 while True:
     try:
-        data, meta = broker.get_next(group_id,stream = "stream", meta_only=True)
+        data, meta = consumer.get_next(group_id,stream = "stream", meta_only=True)
         print ("received: ",meta)
         n_recv = n_recv + 1
     except  asapo_consumer.AsapoStreamFinishedError as finished_stream:
@@ -54,6 +54,6 @@ while True:
 
 assert_eq(n_recv, n_send, "send=recv")
 assert_eq(stream_finished, True, "stream finished")
-print('Using connection type: ' + broker.current_connection_type())
+print('Using connection type: ' + consumer.current_connection_type())
 
 
diff --git a/tests/automatic/full_chain/simple_chain/CMakeLists.txt b/tests/automatic/full_chain/simple_chain/CMakeLists.txt
index 1f7374efe1954591b0c95d5a8c9f064686481780..84ddc34f2943138033ed6e7f531435994ebc76d0 100644
--- a/tests/automatic/full_chain/simple_chain/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain/CMakeLists.txt
@@ -4,4 +4,4 @@ set(TARGET_NAME full_chain_simple_chain)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
+add_script_test("${TARGET_NAME}" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_dataset/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_dataset/CMakeLists.txt
index cf7580f6ea6f586300e671d29792dd31600bed1a..c6014bf7bc53c44f5ae3fcb6b64a44878008d387 100644
--- a/tests/automatic/full_chain/simple_chain_dataset/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_dataset/CMakeLists.txt
@@ -4,4 +4,4 @@ set(TARGET_NAME full_chain_simple_chain_dataset)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_filegen/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_filegen/CMakeLists.txt
index 8bd0d723e8f5e9fd26f0413495370b9391cf327c..878b5192b990fba317f109df09235fd0de488e6a 100644
--- a/tests/automatic/full_chain/simple_chain_filegen/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_filegen/CMakeLists.txt
@@ -12,4 +12,4 @@ endif()
 
 configure_file(test.json.in test.json @ONLY)
 
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_filegen_batches/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_filegen_batches/CMakeLists.txt
index 6a8d10614a88cb7b2e722efe226c1a7d70d64b5c..810f673112d1af8c124ae62a8364af670f7a8353 100644
--- a/tests/automatic/full_chain/simple_chain_filegen_batches/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_filegen_batches/CMakeLists.txt
@@ -12,4 +12,4 @@ endif()
 
 configure_file(test.json.in test.json @ONLY)
 
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_filegen_multisource/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_filegen_multisource/CMakeLists.txt
index 16d6a270f0b362ddea8b6180f08e23427ff7599d..0341d8b7ad7dc345b8b3407a7fe5ccc061ea5822 100644
--- a/tests/automatic/full_chain/simple_chain_filegen_multisource/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_filegen_multisource/CMakeLists.txt
@@ -15,4 +15,4 @@ configure_file(test.json.in test1.json @ONLY)
 SET (ID 2)
 configure_file(test.json.in test2.json @ONLY)
 
-add_script_test("${TARGET_NAME}" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
+add_script_test("${TARGET_NAME}" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_filegen_readdata_cache/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_filegen_readdata_cache/CMakeLists.txt
index 682fdc6a2196ab447e5f29282a4b98ebdbac6116..17c1adc618b76c372691be8c4ee0e0591e28d266 100644
--- a/tests/automatic/full_chain/simple_chain_filegen_readdata_cache/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_filegen_readdata_cache/CMakeLists.txt
@@ -12,11 +12,11 @@ endif()
 
 configure_file(test.json.in test.json @ONLY)
 
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
 
 if (ENABLE_LIBFABRIC)
     if (ENABLE_LIBFABRIC_LOCALHOST)
-        add_script_test("${TARGET_NAME}-fabric" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> fabric" nomem)
+        add_script_test("${TARGET_NAME}-fabric" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> fabric" nomem)
     else ()
         message(WARNING "Disabled automated LibFabric of '${TARGET_NAME}-fabric' test because 'ENABLE_LIBFABRIC_LOCALHOST' is not enabled.")
     endif()
diff --git a/tests/automatic/full_chain/simple_chain_filegen_readdata_file/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_filegen_readdata_file/CMakeLists.txt
index c54130a4ac26bcdfb6c7b5adf3a92830141642c9..4cc2403a472a4829c214879075f96f62f673d3a7 100644
--- a/tests/automatic/full_chain/simple_chain_filegen_readdata_file/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_filegen_readdata_file/CMakeLists.txt
@@ -13,4 +13,4 @@ endif()
 
 configure_file(test.json.in test.json @ONLY)
 
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:event-monitor-producer-bin> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_metadata/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_metadata/CMakeLists.txt
index 2ff284ef9ad078f5f16274ce7ed69f9eb9f21185..7149bd170d51a480e1833b5d1de290f30047e7e2 100644
--- a/tests/automatic/full_chain/simple_chain_metadata/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_metadata/CMakeLists.txt
@@ -4,4 +4,4 @@ set(TARGET_NAME full_chain_simple_chain_metadata)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_raw/CMakeLists.txt b/tests/automatic/full_chain/simple_chain_raw/CMakeLists.txt
index 1cf8ce6f58bbe85a5c752c1055f742f958d137d0..3bbd3e039f3ab1e1bf14e8701313900e8c0a53ce 100644
--- a/tests/automatic/full_chain/simple_chain_raw/CMakeLists.txt
+++ b/tests/automatic/full_chain/simple_chain_raw/CMakeLists.txt
@@ -20,4 +20,4 @@ configure_file(beamtime-metadata-11111111.json beamtime-metadata-11111111.json C
 
 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/settings.json.tpl.in authorizer.json.tpl @ONLY)
 
-add_script_test("${TARGET_NAME}" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
+add_script_test("${TARGET_NAME}" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME>" nomem)
diff --git a/tests/automatic/full_chain/simple_chain_usermeta_python/get_user_meta.py b/tests/automatic/full_chain/simple_chain_usermeta_python/get_user_meta.py
index eaa115726de4fea638cf1658d26fc1111196ce8a..176c5e0df2211129ad6bc9ee8910ce59fca511fd 100644
--- a/tests/automatic/full_chain/simple_chain_usermeta_python/get_user_meta.py
+++ b/tests/automatic/full_chain/simple_chain_usermeta_python/get_user_meta.py
@@ -5,9 +5,9 @@ import sys
 
 source, path, beamtime, token, group_id = sys.argv[1:]
 
-broker = asapo_consumer.create_server_broker(source,path,True, beamtime,"",token,60000)
+consumer = asapo_consumer.create_consumer(source,path,True, beamtime,"",token,60000)
 
-images = broker.query_images("meta.user_meta regexp 'test*' order by _id")
+images = consumer.query_images("meta.user_meta regexp 'test*' order by _id")
 
 print ('found images:',len(images))
 print (images[99]['meta']['user_meta'])
diff --git a/tests/automatic/full_chain/two_beamlines/CMakeLists.txt b/tests/automatic/full_chain/two_beamlines/CMakeLists.txt
index 88c67cc9255bf4c8ec089c86730d83bda8561968..b4b621b3dca1d4ae1162df26625b5d77a7069f2a 100644
--- a/tests/automatic/full_chain/two_beamlines/CMakeLists.txt
+++ b/tests/automatic/full_chain/two_beamlines/CMakeLists.txt
@@ -4,11 +4,11 @@ set(TARGET_NAME full_chain_two_beamlines)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
 
 if (ENABLE_LIBFABRIC)
     if (ENABLE_LIBFABRIC_LOCALHOST)
-        add_script_test("${TARGET_NAME}-fabric" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> fabric" nomem)
+        add_script_test("${TARGET_NAME}-fabric" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> fabric" nomem)
     else ()
         message(WARNING "Disabled automated LibFabric of '${TARGET_NAME}-fabric' test because 'ENABLE_LIBFABRIC_LOCALHOST' is not enabled.")
     endif()
diff --git a/tests/automatic/full_chain/two_streams/CMakeLists.txt b/tests/automatic/full_chain/two_streams/CMakeLists.txt
index 505c1ff22dde1cbc00fcb4a4a1a08f62d4e04795..bde0f7e3971762241ed5e201a65ea989ecec101e 100644
--- a/tests/automatic/full_chain/two_streams/CMakeLists.txt
+++ b/tests/automatic/full_chain/two_streams/CMakeLists.txt
@@ -4,4 +4,4 @@ set(TARGET_NAME full_chain_two_streams)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/high_avail/broker_mongo_restart/CMakeLists.txt b/tests/automatic/high_avail/broker_mongo_restart/CMakeLists.txt
index 826d9d19a9409532bcb194a3e8899501f11b8091..9c50d188705d726e4850d41d8fb352d8bc2b5010 100644
--- a/tests/automatic/high_avail/broker_mongo_restart/CMakeLists.txt
+++ b/tests/automatic/high_avail/broker_mongo_restart/CMakeLists.txt
@@ -4,4 +4,4 @@ set(TARGET_NAME broker_mongo_restart)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
+add_script_test("${TARGET_NAME}-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> tcp" nomem)
diff --git a/tests/automatic/high_avail/services_restart/CMakeLists.txt b/tests/automatic/high_avail/services_restart/CMakeLists.txt
index 25a2b009764f40a11a6b5745f054ec86bf240b3f..4b27ebf5b089288c4ac5e4a89a2de33322385ac4 100644
--- a/tests/automatic/high_avail/services_restart/CMakeLists.txt
+++ b/tests/automatic/high_avail/services_restart/CMakeLists.txt
@@ -4,5 +4,5 @@ set(TARGET_NAME service_restart)
 # Testing
 ################################
 prepare_asapo()
-add_script_test("${TARGET_NAME}-all-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> broker 1000 998 tcp" nomem)
-add_script_test("${TARGET_NAME}-all-but-broker-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext_broker> $<TARGET_PROPERTY:asapo,EXENAME> receiver 1000 1000 tcp" nomem)
+add_script_test("${TARGET_NAME}-all-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> broker 1000 998 tcp" nomem)
+add_script_test("${TARGET_NAME}-all-but-broker-tcp" "$<TARGET_FILE:dummy-data-producer> $<TARGET_FILE:getnext> $<TARGET_PROPERTY:asapo,EXENAME> receiver 1000 1000 tcp" nomem)
diff --git a/tests/manual/broker_debug_local/start_getnext.sh b/tests/manual/broker_debug_local/start_getnext.sh
index a9efa78f00c7c85e8422b776b05c40f8f1d74c28..e40f3951d3cc73dc0b64406609b321cedc5519b5 100755
--- a/tests/manual/broker_debug_local/start_getnext.sh
+++ b/tests/manual/broker_debug_local/start_getnext.sh
@@ -8,6 +8,6 @@ metaonly=0
 nthreads=4
 token=IEfwsWa0GXky2S3MkxJSUHJT1sI8DD5teRdjBUXVRxk=
 
-exec=/home/yakubov/projects/asapo/cmake-build-debug/examples/consumer/getnext_broker/getnext_broker
+exec=/home/yakubov/projects/asapo/cmake-build-debug/examples/consumer/getnext/getnext
 
 $exec localhost:8400 /tmp/asapo/receiver/files/test/asapo_test asapo_test $nthreads $token $timeout $metaonly
diff --git a/tests/manual/consumer_multithread_python/consumer.py b/tests/manual/consumer_multithread_python/consumer.py
index 9ca4fdb3355b83c9a0718e2ea8ab20bb88e5b1dc..4bde969c0b6b193662bbcb4bdc1beb8cbd25bee9 100644
--- a/tests/manual/consumer_multithread_python/consumer.py
+++ b/tests/manual/consumer_multithread_python/consumer.py
@@ -4,39 +4,39 @@ import _thread
 import time
 
 # Define a function for the thread
-def print_time( threadName, broker):
+def print_time( threadName, consumer):
     while 1:
-        group_id = broker.generate_group_id()
+        group_id = consumer.generate_group_id()
         print (group_id)
 
 print ("consumer: ",asapo_consumer.__version__)
 endpoint = "asap3-utl01.desy.de:8400"
 beamtime = "asapo_test"
 token = "KmUDdacgBzaOD3NIJvN1NmKGqWKtx0DK-NyPjdpeWkc="
-broker = asapo_consumer.create_server_broker(endpoint,"/gpfs/petra3/scratch/yakubov/asapo_shared/test_facility/gpfs/test/2019/data/asapo_test",False, beamtime,"",token,6000)
+consumer = asapo_consumer.create_consumer(endpoint,"/gpfs/petra3/scratch/yakubov/asapo_shared/test_facility/gpfs/test/2019/data/asapo_test",False, beamtime,"",token,6000)
 
 
 try:
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-1", broker, ) )
-    _thread.start_new_thread( print_time, ("Thread-2", broker, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-1", consumer, ) )
+    _thread.start_new_thread( print_time, ("Thread-2", consumer, ) )
 except:
     print ("Error: unable to start thread")
 
diff --git a/tests/manual/maxwell/asapo_test/consume.py b/tests/manual/maxwell/asapo_test/consume.py
index daca010bfb963f6f14278940f507e38e03cbc933..8af7a6776de18eff0d6db6b794b7cdfd718d65a1 100644
--- a/tests/manual/maxwell/asapo_test/consume.py
+++ b/tests/manual/maxwell/asapo_test/consume.py
@@ -9,5 +9,5 @@ with open('asapo_host', 'r') as file:
 token="KmUDdacgBzaOD3NIJvN1NmKGqWKtx0DK-NyPjdpeWkc="
 
 os.system("hostname")
-os.system("./getnext_broker "+host+":8400 /gpfs/petra3/scratch/yakubov/asapo_shared/test/asapo_test asapo_test%data_source"+str(rank)+" 8 "+token+" 1000 0")
+os.system("./getnext "+host+":8400 /gpfs/petra3/scratch/yakubov/asapo_shared/test/asapo_test asapo_test%data_source"+str(rank)+" 8 "+token+" 1000 0")
 
diff --git a/tests/manual/maxwell/asapo_test/get_binaries.sh b/tests/manual/maxwell/asapo_test/get_binaries.sh
index 02735d75463d37121f2c3e4962363c938b43e3fe..d08c0c29b5cfae28addec7ea51669e7e6d741fe0 100755
--- a/tests/manual/maxwell/asapo_test/get_binaries.sh
+++ b/tests/manual/maxwell/asapo_test/get_binaries.sh
@@ -1,5 +1,5 @@
 scp zitpcx27016:/home/yakubov/projects/asapo/cmake-build-release/examples/producer/dummy-data-producer/dummy-data-producer .
-scp zitpcx27016:/home/yakubov/projects/asapo/cmake-build-release/examples/consumer/getnext_broker/getnext_broker .
+scp zitpcx27016:/home/yakubov/projects/asapo/cmake-build-release/examples/consumer/getnext/getnext .
 
 
 
diff --git a/tests/manual/performance_broker/test.sh b/tests/manual/performance_broker/test.sh
index 1091938f10fcb0e655306e4cbe1a5e36450a81b2..9963cb021adf33310ee1bd0e99b1a3c1db6841a8 100755
--- a/tests/manual/performance_broker/test.sh
+++ b/tests/manual/performance_broker/test.sh
@@ -2,7 +2,7 @@
 
 # starts broker, mongodb on $service_node
 # reads fileset into database
-# calls getnext_broker example from $consumer_node
+# calls getnext example from $consumer_node
 
 nthreads=1
 # a directory with many files in it
@@ -58,8 +58,8 @@ ssh ${consumer_node} ${consumer_dir}/folder2db -n ${nthreads} ${dir} ${run_name}
 
 sleep 3
 
-scp ../../../cmake-build-release/examples/consumer/getnext_broker/getnext_broker ${consumer_node}:${consumer_dir}
-ssh ${consumer_node} ${consumer_dir}/getnext_broker ${service_node}:8400 ${run_name} ${nthreads} $token
+scp ../../../cmake-build-release/examples/consumer/getnext/getnext ${consumer_node}:${consumer_dir}
+ssh ${consumer_node} ${consumer_dir}/getnext ${service_node}:8400 ${run_name} ${nthreads} $token
 
 
 
diff --git a/tests/manual/performance_broker_receiver/getlast_broker.cpp b/tests/manual/performance_broker_receiver/getlast_broker.cpp
index 2bb4519d51df197f925d60c11a4b36532011e3d3..9ec15280db66a9fd9fbe7c95166c2290a4e7e0da 100644
--- a/tests/manual/performance_broker_receiver/getlast_broker.cpp
+++ b/tests/manual/performance_broker_receiver/getlast_broker.cpp
@@ -60,15 +60,17 @@ std::vector<std::thread> StartThreads(const Args& params,
     auto exec_next = [&params, nfiles, errors, nbuf, nfiles_total](int i) {
         asapo::FileInfo fi;
         Error err;
-        auto broker = asapo::DataBrokerFactory::CreateServerBroker(params.server, params.file_path, true,
-                      asapo::SourceCredentials{asapo::SourceType::kProcessed,params.beamtime_id, "", "", params.token}, &err);
-        broker->SetTimeout((uint64_t) params.timeout_ms);
+        auto consumer = asapo::ConsumerFactory::CreateConsumer(params.server, params.file_path, true,
+                                                             asapo::SourceCredentials{asapo::SourceType::kProcessed,
+                                                                                      params.beamtime_id, "", "",
+                                                                                      params.token}, &err);
+        consumer->SetTimeout((uint64_t) params.timeout_ms);
         asapo::FileData data;
 
         lock.lock();
 
         if (group_id.empty()) {
-            group_id = broker->GenerateNewGroupId(&err);
+            group_id = consumer->GenerateNewGroupId(&err);
             if (err) {
                 (*errors)[i] += ProcessError(err);
                 return;
@@ -81,7 +83,7 @@ std::vector<std::thread> StartThreads(const Args& params,
         while (std::chrono::duration_cast<std::chrono::milliseconds>(system_clock::now() - start).count() <
                 params.timeout_ms) {
             if (params.datasets) {
-                auto dataset = broker->GetLastDataset(0, &err);
+                auto dataset = consumer->GetLastDataset(0, &err);
                 if (err == nullptr) {
                     for (auto& fi : dataset.content) {
                         (*nbuf)[i] += fi.buf_id == 0 ? 0 : 1;
@@ -89,7 +91,7 @@ std::vector<std::thread> StartThreads(const Args& params,
                     }
                 }
             } else {
-                err = broker->GetLast(&fi, params.read_data ? &data : nullptr);
+                err = consumer->GetLast(&fi, params.read_data ? &data : nullptr);
                 if (err == nullptr) {
                     (*nbuf)[i] += fi.buf_id == 0 ? 0 : 1;
                     if (params.read_data && (*nfiles)[i] < 10 && fi.size < 10) {
@@ -167,7 +169,7 @@ int ReadAllData(const Args& params, uint64_t* duration_ms, int* nerrors, int* nb
 }
 
 int main(int argc, char* argv[]) {
-    asapo::ExitAfterPrintVersionIfNeeded("GetLast Broker Example", argc, argv);
+    asapo::ExitAfterPrintVersionIfNeeded("GetLast consumer Example", argc, argv);
     Args params;
     params.datasets = false;
     if (argc != 9 && argc != 10) {
diff --git a/tests/manual/performance_full_chain_simple/test.sh b/tests/manual/performance_full_chain_simple/test.sh
index 56b1536ad37cac5a6365e4a6e74b1cf74e63983b..d77c60cd4fa5ce38d44dd800cbe9d9289e49f87c 100755
--- a/tests/manual/performance_full_chain_simple/test.sh
+++ b/tests/manual/performance_full_chain_simple/test.sh
@@ -112,7 +112,7 @@ scp ../../../cmake-build-release/broker/asapo-broker ${broker_node}:${broker_dir
 consumer_node=max-display002
 consumer_dir=~/fullchain_tests
 nthreads=16
-scp ../../../cmake-build-release/examples/consumer/getnext_broker/getnext_broker ${consumer_node}:${consumer_dir}
+scp ../../../cmake-build-release/examples/consumer/getnext/getnext ${consumer_node}:${consumer_dir}
 scp ../../../cmake-build-release/asapo_tools/asapo ${consumer_node}:${consumer_dir}
 scp ../../../tests/automatic/settings/auth_secret.key ${consumer_node}:${consumer_dir}/auth_secret.key
 
@@ -147,6 +147,6 @@ sleep 1
 #prepare token
 ssh ${consumer_node} "bash -c '${consumer_dir}/asapo token -secret ${consumer_dir}/auth_secret.key ${beamtime_id} >${consumer_dir}/token'"
 #consumer_start
-ssh ${consumer_node} "bash -c '${consumer_dir}/getnext_broker ${receiver_node}:8400 ${beamtime_id} ${nthreads} \`cat ${consumer_dir}/token\`'"
+ssh ${consumer_node} "bash -c '${consumer_dir}/getnext ${receiver_node}:8400 ${beamtime_id} ${nthreads} \`cat ${consumer_dir}/token\`'"
 
 
diff --git a/tests/manual/python_tests/ASAPO-csb.ipynb b/tests/manual/python_tests/ASAPO-csb.ipynb
index 962c72374b7a247460b6b02084686d7498026729..5e2cb51dc3a8a05185b1bd08f5251b8f272639dc 100644
--- a/tests/manual/python_tests/ASAPO-csb.ipynb
+++ b/tests/manual/python_tests/ASAPO-csb.ipynb
@@ -24,7 +24,7 @@
     "import time\n",
     "from IPython import display\n",
     "\n",
-    "broker, err = asapo_consumer.create_server_broker(\"psana002:8400\", \"/tmp\", \"asapo_test2\",\"\",\"yzgAcLmijSLWIm8dBiGNCbc0i42u5HSm-zR6FRqo__Y=\", 1000000)\n"
+    "broker, err = asapo_consumer.create_consumer(\"psana002:8400\", \"/tmp\", \"asapo_test2\",\"\",\"yzgAcLmijSLWIm8dBiGNCbc0i42u5HSm-zR6FRqo__Y=\", 1000000)\n"
    ]
   },
   {
diff --git a/tests/manual/python_tests/consumer/consumer_api.py b/tests/manual/python_tests/consumer/consumer_api.py
index 63071c21c53bd1ef25fa7752ad3274f3bfdc5d30..28d8e16db126528a17ec379a9cedfe9f116eba80 100644
--- a/tests/manual/python_tests/consumer/consumer_api.py
+++ b/tests/manual/python_tests/consumer/consumer_api.py
@@ -4,17 +4,17 @@ import asapo_consumer
 import sys
 
 source, path, beamtime, token = sys.argv[1:]
-broker = asapo_consumer.create_server_broker(source,path,False, beamtime,"",token,1000)
-group_id = broker.generate_group_id()
+consumer = asapo_consumer.create_consumer(source,path,False, beamtime,"",token,1000)
+group_id = consumer.generate_group_id()
 
-res = broker.query_images("_id > 0", stream="1")
+res = consumer.query_images("_id > 0", stream="1")
 
 print(res)
 
-#data, meta = broker.get_by_id(5,group_id,"default", meta_only=False)
+#data, meta = consumer.get_by_id(5,group_id,"default", meta_only=False)
 
 #meta["buf_id"]=0
-#data = broker.retrieve_data(meta)
+#data = consumer.retrieve_data(meta)
 
 #print (meta)
 #print (len(data),data[0:100])
diff --git a/tests/manual/python_tests/consumer/consumer_api.py_ b/tests/manual/python_tests/consumer/consumer_api.py_
index 0aa14cb8dbd215b7fe7538d8815a8180af9c6d39..a4c784c0775952c687f7ad3dd388a7990f9947e9 100644
--- a/tests/manual/python_tests/consumer/consumer_api.py_
+++ b/tests/manual/python_tests/consumer/consumer_api.py_
@@ -4,7 +4,7 @@ import asapo_consumer
 import sys
 
 source, path,beamtime, token = sys.argv[1:]
-broker = asapo_consumer.create_server_broker(source,path,False, beamtime,"",token,1000)
+consumer = asapo_consumer.create_consumer(source,path,False, beamtime,"",token,1000)
 group_id = broker.generate_group_id()
 
 
diff --git a/tests/manual/python_tests/plot_images_online.py b/tests/manual/python_tests/plot_images_online.py
index 31b0e88e01bf99908bfb377d785331ba77541d34..e9e31a85dd61ec58d2095f782ebc7848081505c5 100644
--- a/tests/manual/python_tests/plot_images_online.py
+++ b/tests/manual/python_tests/plot_images_online.py
@@ -9,11 +9,11 @@ import matplotlib.pyplot as plt
 #dset = f.create_dataset("mydataset", data = d1)
 #f.close()
 
-broker, err = asapo_consumer.create_server_broker("psana002:8400", "/tmp", True, "asapo_test2","","yzgAcLmijSLWIm8dBiGNCbc0i42u5HSm-zR6FRqo__Y=", 1000000)
+consumer, err = asapo_consumer.create_consumer("psana002:8400", "/tmp", True, "asapo_test2","","yzgAcLmijSLWIm8dBiGNCbc0i42u5HSm-zR6FRqo__Y=", 1000000)
 
 last_id = 0
 while True:
-    data, meta, err = broker.get_last(meta_only=False)
+    data, meta, err = consumer.get_last(meta_only=False)
     id = meta['_id']
     if id == last_id:
         continue
diff --git a/tests/manual/python_tests/producer/cons.py b/tests/manual/python_tests/producer/cons.py
index 04048887f5bdfd3163140981115716d9ba39c0d1..2491ef1aadaf2d6626b4c39c7ce3551a49101ebd 100644
--- a/tests/manual/python_tests/producer/cons.py
+++ b/tests/manual/python_tests/producer/cons.py
@@ -8,10 +8,10 @@ source="127.0.0.1:8400"
 path="/tmp/petra3/gpfs/p01/2019/data/asapo_test"
 beamtime="asapo_test"
 
-broker = asapo_consumer.create_server_broker(source,path,False, beamtime,"test",token,1000)
-group_id = broker.generate_group_id()
+consumer = asapo_consumer.create_consumer(source,path,False, beamtime,"test",token,1000)
+group_id = consumer.generate_group_id()
 
-data, meta = broker.get_by_id(3,group_id,"default", meta_only=False)
+data, meta = consumer.get_by_id(3,group_id,"default", meta_only=False)
 
 print (meta)
 print (data.tostring() )
diff --git a/tests/manual/python_tests/test_p.py b/tests/manual/python_tests/test_p.py
index 764a2f377f2c06a94d46ba85d698935200d825c3..a41224125fa8c5701d89ba2be0afbaf5830391f6 100644
--- a/tests/manual/python_tests/test_p.py
+++ b/tests/manual/python_tests/test_p.py
@@ -10,17 +10,17 @@ path = "/asapo_shared/asapo/data"
 beamtime = "asapo_test"
 token = "KmUDdacgBzaOD3NIJvN1NmKGqWKtx0DK-NyPjdpeWkc="
 
-broker, err = asapo_consumer.create_server_broker(
+consumer, err = asapo_consumer.create_consumer(
     source, path, True, beamtime, token, 1000)
 
-group_id, err = broker.generate_group_id()
+group_id, err = consumer.generate_group_id()
 if err is not None:
     print('cannot generate group id, err: ', err)
 else:
     print('generated group id: ', group_id)
 
 while True:
-    data, meta, err = broker.get_last(group_id, meta_only=False)
+    data, meta, err = consumer.get_last(group_id, meta_only=False)
     if err is not None:
         print('err: ', err)
     else:
diff --git a/tests/manual/receiver_debug_local/start_getnext.sh b/tests/manual/receiver_debug_local/start_getnext.sh
index a9efa78f00c7c85e8422b776b05c40f8f1d74c28..e40f3951d3cc73dc0b64406609b321cedc5519b5 100755
--- a/tests/manual/receiver_debug_local/start_getnext.sh
+++ b/tests/manual/receiver_debug_local/start_getnext.sh
@@ -8,6 +8,6 @@ metaonly=0
 nthreads=4
 token=IEfwsWa0GXky2S3MkxJSUHJT1sI8DD5teRdjBUXVRxk=
 
-exec=/home/yakubov/projects/asapo/cmake-build-debug/examples/consumer/getnext_broker/getnext_broker
+exec=/home/yakubov/projects/asapo/cmake-build-debug/examples/consumer/getnext/getnext
 
 $exec localhost:8400 /tmp/asapo/receiver/files/test/asapo_test asapo_test $nthreads $token $timeout $metaonly
diff --git a/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad.in b/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad.in
index e5d995789aa800cb501f2814468c0ed5ff046a30..cae32b82fb9e9a82f4e8997316e23ffe2f816c6c 100644
--- a/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_dummy_producer.nomad.in
@@ -119,7 +119,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -139,9 +139,9 @@ job "asapo-test" {
       }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
@@ -176,7 +176,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test2/asapo_test2",
@@ -195,9 +195,9 @@ job "asapo-test" {
       }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
 
       }
     }
diff --git a/tests/manual/tests_via_nomad/asapo-test_dummy_producer_only.nomad.in b/tests/manual/tests_via_nomad/asapo-test_dummy_producer_only.nomad.in
index 57c027964539cbb49a392d1f10056fb299d77b20..d4416301aecc43d40ba2ddecd6ea5e8ac88ffde6 100644
--- a/tests/manual/tests_via_nomad/asapo-test_dummy_producer_only.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_dummy_producer_only.nomad.in
@@ -121,7 +121,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -141,9 +141,9 @@ job "asapo-test" {
       }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
@@ -179,7 +179,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test2/asapo_test2",
@@ -198,9 +198,9 @@ job "asapo-test" {
       }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
 
       }
     }
diff --git a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer.nomad.in b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer.nomad.in
index 6aab82d0c2380fd5034e9411e8dcecf294cd61e7..4379531262f22dbec2c58acad98dbd85ace6b8e8 100644
--- a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer.nomad.in
@@ -105,7 +105,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -125,9 +125,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
@@ -166,7 +166,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test2/asapo_test2",
@@ -185,9 +185,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
diff --git a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M.nomad.in b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M.nomad.in
index 82e24cdf6d2ef7d6fcd3ed36f714be10f17ee476..6763020d64a5ae5642472f22f2fddbdfa45fbb2b 100644
--- a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M.nomad.in
@@ -105,7 +105,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -125,9 +125,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
@@ -166,7 +166,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test2/asapo_test2",
@@ -185,9 +185,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
diff --git a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_batch.nomad.in b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_batch.nomad.in
index 4a92a5b1c5bd48d21a7dc9973c00346d92befb42..9312daeabc7d35f94a0cf3c9f5dc1a6b2a5b6070 100644
--- a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_batch.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_batch.nomad.in
@@ -105,7 +105,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -126,9 +126,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
@@ -167,7 +167,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test2/asapo_test2",
@@ -187,9 +187,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
diff --git a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_multisource.nomad.in b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_multisource.nomad.in
index 2707b362534e15f222008d107568ab711fc21304..c24dd1068694439be21ab9f40151210b106d7a60 100644
--- a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_multisource.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_1M_multisource.nomad.in
@@ -105,7 +105,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -126,9 +126,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
diff --git a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_batch.nomad.in b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_batch.nomad.in
index 4303b56d2637b5da4a3a5e61c3a49afc4c095596..e864ebb59c39c4419c59eb4024eefbb5043552fa 100644
--- a/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_batch.nomad.in
+++ b/tests/manual/tests_via_nomad/asapo-test_filegen_consumer_batch.nomad.in
@@ -105,7 +105,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test1/asapo_test1",
@@ -126,9 +126,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }
 
@@ -167,7 +167,7 @@ job "asapo-test" {
     }
 
       config {
-        command = "local/getnext_broker"
+        command = "local/getnext"
         args = [
           "psana002:8400",
           "/bldocuments/support/asapo/data/test2/asapo_test2",
@@ -187,9 +187,9 @@ job "asapo-test" {
 #      }
 
       artifact {
-        source = "http://nims.desy.de/extra/asapo/getnext_broker-@ASAPO_VERSION@"
+        source = "http://nims.desy.de/extra/asapo/getnext-@ASAPO_VERSION@"
         mode = "file"
-        destination = "local/getnext_broker"
+        destination = "local/getnext"
       }
     }