diff --git a/CMakeLists.txt b/CMakeLists.txt
index d905a35ef9a7358b35868a0592190d77e58b65e0..b9d5114a5be01c9254b804b69438234dc586495f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -30,18 +30,19 @@ if (APPLE)
     link_directories("/usr/local/lib")
 endif()
 
-
-option(BUILD_TESTS "Uses googletest to build tests" OFF)
-option(BUILD_INTEGRATION_TESTS "Include integration tests (CMAKE >3.7 is needed)" OFF)
-option(BUILD_CPP_DOCS "Uses doxygen to build the C++ documentaion" OFF)
-option(BUILD_BROKER "Build broker" OFF)
-option(BUILD_EVENT_MONITOR_PRODUCER "Build the event monitor producer" OFF)
-option(BUILD_PYTHON_DOCS "Uses sphinx to build the Python documentaion" OFF)
-option(BUILD_CORE "Build core asapo services" ON)
+option(BUILD_CLIENTS_ONLY "Build clients only" OFF)
 option(BUILD_CONSUMER_TOOLS "Build consumer tools" OFF)
+option(BUILD_EVENT_MONITOR_PRODUCER "Build the event monitor producer" OFF)
+
+option(BUILD_TESTS "Build unit tests" OFF)
+option(BUILD_INTEGRATION_TESTS "Include integration tests" OFF)
+
 option(BUILD_EXAMPLES "Build examples" OFF)
 option(INSTALL_EXAMPLES "Install examples" OFF)
 
+option(BUILD_CPP_DOCS "Build the C++ documentaion with doxygen" OFF)
+option(BUILD_PYTHON_DOCS "Build the Python documentaion with sphinx" OFF)
+
 option(ENABLE_LIBFABRIC "Enables LibFabric support for RDMA transfers" OFF)
 option(ENABLE_LIBFABRIC_LOCALHOST "Emulates LibFabric stack over TCP. Only for localhost and testing purposes." OFF)
 
@@ -92,19 +93,13 @@ include(testing_cpp)
 
 include(prepare_asapo)
 
-if(BUILD_CONSUMER_TOOLS)
-    set (BUILD_MONGODB_CLIENTLIB ON)
-endif()
-
 add_subdirectory(common/cpp)
 
 add_subdirectory(producer)
 add_subdirectory(consumer)
 
-if (BUILD_CORE)
-    if (BUILD_BROKER) #TODO: Somehow make it clear that this is needed by examples/consumer/getnext_broker
-        add_subdirectory(broker)
-    endif()
+if (NOT BUILD_CLIENTS_ONLY)
+add_subdirectory(broker)
 add_subdirectory(receiver)
 add_subdirectory(discovery)
 add_subdirectory(authorizer)
diff --git a/common/cpp/CMakeLists.txt b/common/cpp/CMakeLists.txt
index be02a9d8efcde90bc8a8ee6189bb8dc991aa37d5..4ef322e2193f101c656ee38e36be7a7ebbf1c4e7 100644
--- a/common/cpp/CMakeLists.txt
+++ b/common/cpp/CMakeLists.txt
@@ -14,7 +14,7 @@ add_subdirectory(src/request)
 
 add_subdirectory(src/asapo_fabric)
 
-if(BUILD_MONGODB_CLIENTLIB)
+if(NOT BUILD_CLIENTS_ONLY)
     add_subdirectory(src/database)
 endif()
 
diff --git a/consumer/CMakeLists.txt b/consumer/CMakeLists.txt
index 9f330fbbd8aa45b36f2ddcdc2fd83a6eafbdb13b..b0bc14d1f558b0c307b6c8ef874e7551491618e4 100644
--- a/consumer/CMakeLists.txt
+++ b/consumer/CMakeLists.txt
@@ -3,6 +3,5 @@ add_subdirectory(api/python)
 
 
 if(BUILD_CONSUMER_TOOLS)
-    set (BUILD_MONGODB ON)
     add_subdirectory(tools)
 endif()
diff --git a/consumer/api/python/source_dist_linux/CMakeLists.txt b/consumer/api/python/source_dist_linux/CMakeLists.txt
index cfe17b6547850238ab15b2d9b056085723787d7f..99d58f4cd703f5115fb460a12d16e1da0e313d33 100644
--- a/consumer/api/python/source_dist_linux/CMakeLists.txt
+++ b/consumer/api/python/source_dist_linux/CMakeLists.txt
@@ -6,12 +6,12 @@ ADD_CUSTOM_TARGET(python-dist ALL
         COMMAND ${Python_EXECUTABLE} setup.py sdist
         )
 
-ADD_CUSTOM_TARGET(python-rpm
-        COMMAND PACKAGE_PREFIX=python- python setup.py bdist_rpm --release=${PACKAGE_RELEASE_SUFFIX}
+ADD_CUSTOM_TARGET(python-rpm-consumer
+        COMMAND PACKAGE_PREFIX=python- python setup.py bdist_rpm --release=${PACKAGE_RELEASE_SUFFIX} --requires=numpy
         )
 
-ADD_CUSTOM_TARGET(python3-rpm
-        COMMAND PACKAGE_PREFIX=python3- python3 setup.py bdist_rpm --release=${PACKAGE_RELEASE_SUFFIX}
+ADD_CUSTOM_TARGET(python3-rpm-consumer
+        COMMAND PACKAGE_PREFIX=python3- python3 setup.py bdist_rpm --release=${PACKAGE_RELEASE_SUFFIX} --requires=python3-numpy
         )
 
 #get_property(ASAPO_CONSUMER_LIB TARGET asapo-consumer PROPERTY LOCATION)
diff --git a/deploy/build_env/centos/build.sh b/deploy/build_env/centos/build.sh
index e1e64484aefce77b4be9b58bc28bce78febbd929..8f01bd363777fcdb3d88249f39b09c37a4781e4b 100755
--- a/deploy/build_env/centos/build.sh
+++ b/deploy/build_env/centos/build.sh
@@ -5,12 +5,13 @@ cmake \
     -DCMAKE_BUILD_TYPE="Release" \
     -DENABLE_LIBFABRIC=ON \
     -DINSTALL_EXAMPLES=ON \
-    -DBUILD_CORE=OFF \
+    -DBUILD_CLIENTS_ONLY=ON \
     -DPACKAGE_RELEASE_SUFFIX=$OS \
+    -DNUMPY_VERSION=0   \
     -DLIBCURL_DIR=/curl \
     ..
 make package
-cd consumer/api/python/source_dist_linux && make python-rpm && make python3-rpm && cd -
-cd producer/api/python/source_dist_linux && make python-rpm && make python3-rpm
+cd consumer/api/python/source_dist_linux && make python-rpm-consumer && make python3-rpm-consumer && cd -
+cd producer/api/python/source_dist_linux && make python-rpm-producer && make python3-rpm-producer
 
 
diff --git a/producer/api/python/source_dist_linux/CMakeLists.txt b/producer/api/python/source_dist_linux/CMakeLists.txt
index b78e6388c37abcfc953514825d32c14dbf0d85d8..ff359b3630effd7a06e1903af249fb9a08e96a1b 100644
--- a/producer/api/python/source_dist_linux/CMakeLists.txt
+++ b/producer/api/python/source_dist_linux/CMakeLists.txt
@@ -3,6 +3,13 @@ configure_file(MANIFEST.in MANIFEST.in @ONLY)
 
 file(GENERATE OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py INPUT ${CMAKE_CURRENT_BINARY_DIR}/setup.py)
 
+ADD_CUSTOM_TARGET(python-rpm-producer
+		COMMAND PACKAGE_PREFIX=python- python setup.py bdist_rpm --release=${PACKAGE_RELEASE_SUFFIX} --requires=numpy
+		)
+
+ADD_CUSTOM_TARGET(python3-rpm-producer
+		COMMAND PACKAGE_PREFIX=python3- python3 setup.py bdist_rpm --release=${PACKAGE_RELEASE_SUFFIX} --requires=python3-numpy
+		)
 
 ADD_CUSTOM_TARGET(python-dist-producer ALL
         COMMAND ${Python_EXECUTABLE} setup.py sdist
diff --git a/producer/api/python/source_dist_linux/setup.py.in b/producer/api/python/source_dist_linux/setup.py.in
index bf47d09d1f9ddc1b836035cd3254328b3fafc428..c129fcdb8bf0280f5c47e8cfb9fff56d0148a6aa 100644
--- a/producer/api/python/source_dist_linux/setup.py.in
+++ b/producer/api/python/source_dist_linux/setup.py.in
@@ -1,6 +1,6 @@
 from distutils.core import setup
 from distutils.core import Extension
-import numpy
+import numpy, os
 
 ext_modules = [
     Extension("asapo_producer", ["asapo_producer.cpp"],
@@ -12,7 +12,7 @@ ext_modules = [
 ]
 
 setup(
-      name ="asapo_producer",
+      name = os.environ.get('PACKAGE_PREFIX', '') + "asapo_producer",
       ext_modules = ext_modules,
       version = "@PYTHON_ASAPO_VERSION@",
       setup_requires=["numpy>=@NUMPY_VERSION@", "cython>=0.28"],
diff --git a/tests/automatic/CMakeLists.txt b/tests/automatic/CMakeLists.txt
index b7282bce4e6266677adf18754ee7409c5ac6a685..91516687693d29ef8a8f3b564dd76d4866464d8a 100644
--- a/tests/automatic/CMakeLists.txt
+++ b/tests/automatic/CMakeLists.txt
@@ -6,14 +6,9 @@ add_subdirectory(system_io)
 
 add_subdirectory(json_parser)
 
-if(BUILD_MONGODB_CLIENTLIB)
-    add_subdirectory(mongo_db)
-endif()
-
+add_subdirectory(mongo_db)
 
-if(BUILD_BROKER)
-    add_subdirectory(broker)
-endif()
+add_subdirectory(broker)
 
 add_subdirectory(authorizer)
 
diff --git a/tests/automatic/asapo_fabric/parallel_data_transfer.cpp b/tests/automatic/asapo_fabric/parallel_data_transfer.cpp
index 79197f86b4877f0337dccf587dc85ef2afbdaa4c..b541b5913c49618102d5015aa0084e9a2eb55a28 100644
--- a/tests/automatic/asapo_fabric/parallel_data_transfer.cpp
+++ b/tests/automatic/asapo_fabric/parallel_data_transfer.cpp
@@ -5,7 +5,7 @@
 #include <iostream>
 #include <cstring>
 #include <future>
-#include <request/request.h>
+#include "asapo/request/request.h"
 
 using namespace asapo;
 using namespace fabric;
diff --git a/tests/automatic/asapo_fabric/simple_data_transfer.cpp b/tests/automatic/asapo_fabric/simple_data_transfer.cpp
index 742b82f4fb73ed3cf8afc345c9a7703e1db79f5e..e811d4644b6c9ec95daee6c957c00b7fc0070436 100644
--- a/tests/automatic/asapo_fabric/simple_data_transfer.cpp
+++ b/tests/automatic/asapo_fabric/simple_data_transfer.cpp
@@ -5,7 +5,7 @@
 #include <iostream>
 #include <cstring>
 #include <future>
-#include <request/request.h>
+#include "asapo/request/request.h"
 
 using namespace asapo;
 using namespace fabric;
diff --git a/tests/automatic/asapo_fabric/wrong_memory_info.cpp b/tests/automatic/asapo_fabric/wrong_memory_info.cpp
index 7104b98c679df1f04f22dcd71af50321f6e47995..52259b58e17e324f777bfc8a1aa0190ba78674c4 100644
--- a/tests/automatic/asapo_fabric/wrong_memory_info.cpp
+++ b/tests/automatic/asapo_fabric/wrong_memory_info.cpp
@@ -5,7 +5,7 @@
 #include <iostream>
 #include <cstring>
 #include <future>
-#include <request/request.h>
+#include "asapo/request/request.h"
 
 using namespace asapo;
 using namespace fabric;