diff --git a/install_MPI.sh b/install_MPI.sh
new file mode 100644
index 0000000000000000000000000000000000000000..5cd73f435735c016dc5350aea73144424c133d38
--- /dev/null
+++ b/install_MPI.sh
@@ -0,0 +1,9 @@
+#!/bin/bash 
+
+mkdir ${HOME}/MPI
+wget http://www.open-mpi.de/software/ompi/v1.8/downloads/openmpi-1.8.7.tar.bz2
+tar -xvf openmpi-1.8.7.tar.bz2
+cd openmpi-1.8.7
+sh ./configure --prefix=${HOME}/MPI --enable-opal-multi-threads --enable-mpi-f90
+make
+make install
diff --git a/src/.deps/pdata-HeapMemory.Po b/src/.deps/pdata-HeapMemory.Po
index 42e2989ad7e6df81a5a55313471c01d127dc00f0..fdc68bd49c847939d37f93ea44387a05f0279fac 100644
--- a/src/.deps/pdata-HeapMemory.Po
+++ b/src/.deps/pdata-HeapMemory.Po
@@ -74,9 +74,10 @@ pdata-HeapMemory.o: ../../OpenFPM_devices/src/memory/HeapMemory.cpp \
  /usr/include/sys/types.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-float.h /usr/include/c++/4.9.2/cstdio \
- /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/4.9.2/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
  /usr/include/c++/4.9.2/cerrno /usr/include/errno.h \
  /usr/include/bits/errno.h /usr/include/linux/errno.h \
  /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
@@ -301,6 +302,8 @@ pdata-HeapMemory.o: ../../OpenFPM_devices/src/memory/HeapMemory.cpp \
 
 /usr/include/alloca.h:
 
+/usr/include/bits/stdlib-bsearch.h:
+
 /usr/include/bits/stdlib-float.h:
 
 /usr/include/c++/4.9.2/cstdio:
@@ -313,6 +316,8 @@ pdata-HeapMemory.o: ../../OpenFPM_devices/src/memory/HeapMemory.cpp \
 
 /usr/include/bits/sys_errlist.h:
 
+/usr/include/bits/stdio.h:
+
 /usr/include/c++/4.9.2/cerrno:
 
 /usr/include/errno.h:
diff --git a/src/.deps/pdata-Memleak_check.Po b/src/.deps/pdata-Memleak_check.Po
index 6e9955e576862a4e28f4c0d6599b948c25fd017f..b83f8742ae12520c754559aeb9658d08933cff10 100644
--- a/src/.deps/pdata-Memleak_check.Po
+++ b/src/.deps/pdata-Memleak_check.Po
@@ -71,9 +71,10 @@ pdata-Memleak_check.o: ../../OpenFPM_data/src/Memleak_check.cpp \
  /usr/include/sys/types.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-float.h /usr/include/c++/4.9.2/cstdio \
- /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/4.9.2/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
  /usr/include/c++/4.9.2/cerrno /usr/include/errno.h \
  /usr/include/bits/errno.h /usr/include/linux/errno.h \
  /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
@@ -302,6 +303,8 @@ pdata-Memleak_check.o: ../../OpenFPM_data/src/Memleak_check.cpp \
 
 /usr/include/alloca.h:
 
+/usr/include/bits/stdlib-bsearch.h:
+
 /usr/include/bits/stdlib-float.h:
 
 /usr/include/c++/4.9.2/cstdio:
@@ -314,6 +317,8 @@ pdata-Memleak_check.o: ../../OpenFPM_data/src/Memleak_check.cpp \
 
 /usr/include/bits/sys_errlist.h:
 
+/usr/include/bits/stdio.h:
+
 /usr/include/c++/4.9.2/cerrno:
 
 /usr/include/errno.h:
diff --git a/src/.deps/pdata-VCluster.Po b/src/.deps/pdata-VCluster.Po
index d5efeff1085c337d501f34e4572da0ccaa1aebee..57771c2608f19a1afb3cd86eac91d3e7405519fd 100644
--- a/src/.deps/pdata-VCluster.Po
+++ b/src/.deps/pdata-VCluster.Po
@@ -78,9 +78,10 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
  /usr/include/sys/types.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-float.h /usr/include/c++/4.9.2/cstdio \
- /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/4.9.2/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
  /usr/include/c++/4.9.2/cerrno /usr/include/errno.h \
  /usr/include/bits/errno.h /usr/include/linux/errno.h \
  /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
@@ -789,7 +790,8 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/c++/4.9.2/sstream /usr/include/c++/4.9.2/bits/sstream.tcc \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.9.2/sstream \
+ /usr/include/c++/4.9.2/bits/sstream.tcc \
  /usr/include/boost/type_traits/is_compound.hpp \
  /usr/include/boost/type_traits/is_copy_constructible.hpp \
  /usr/include/boost/noncopyable.hpp \
@@ -998,11 +1000,6 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
  ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IallreduceW.hpp \
  ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IrecvW.hpp \
  ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IsendW.hpp \
- ../../OpenFPM_data/src/util/check_no_pointers.hpp \
- ../../OpenFPM_data/src/util/common.hpp \
- ../../OpenFPM_data/src/util/util_debug.hpp \
- /usr/include/c++/4.9.2/cxxabi.h \
- /usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cxxabi_tweaks.h \
  ../../OpenFPM_vcluster/src/util/Vcluster_log.hpp \
  /usr/include/c++/4.9.2/fstream /usr/include/c++/4.9.2/bits/codecvt.h \
  /usr/include/c++/4.9.2/x86_64-redhat-linux/bits/basic_file.h \
@@ -1226,6 +1223,8 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
 
 /usr/include/alloca.h:
 
+/usr/include/bits/stdlib-bsearch.h:
+
 /usr/include/bits/stdlib-float.h:
 
 /usr/include/c++/4.9.2/cstdio:
@@ -1238,6 +1237,8 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
 
 /usr/include/bits/sys_errlist.h:
 
+/usr/include/bits/stdio.h:
+
 /usr/include/c++/4.9.2/cerrno:
 
 /usr/include/errno.h:
@@ -2738,6 +2739,8 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
 
 /usr/include/bits/mathcalls.h:
 
+/usr/include/bits/mathinline.h:
+
 /usr/include/c++/4.9.2/sstream:
 
 /usr/include/c++/4.9.2/bits/sstream.tcc:
@@ -3184,16 +3187,6 @@ pdata-VCluster.o: ../../OpenFPM_vcluster/src/VCluster.cpp \
 
 ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IsendW.hpp:
 
-../../OpenFPM_data/src/util/check_no_pointers.hpp:
-
-../../OpenFPM_data/src/util/common.hpp:
-
-../../OpenFPM_data/src/util/util_debug.hpp:
-
-/usr/include/c++/4.9.2/cxxabi.h:
-
-/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cxxabi_tweaks.h:
-
 ../../OpenFPM_vcluster/src/util/Vcluster_log.hpp:
 
 /usr/include/c++/4.9.2/fstream:
diff --git a/src/.deps/pdata-main.Po b/src/.deps/pdata-main.Po
index 4b41838c0ac20f5595a70017f77496c4d6057841..9e9db061c5ee3ac8fb935bdf13bcaca219fa7471 100644
--- a/src/.deps/pdata-main.Po
+++ b/src/.deps/pdata-main.Po
@@ -70,9 +70,10 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
  /usr/include/sys/types.h /usr/include/sys/select.h \
  /usr/include/bits/select.h /usr/include/bits/sigset.h \
  /usr/include/sys/sysmacros.h /usr/include/alloca.h \
- /usr/include/bits/stdlib-float.h /usr/include/c++/4.9.2/cstdio \
- /usr/include/libio.h /usr/include/_G_config.h \
- /usr/include/bits/stdio_lim.h /usr/include/bits/sys_errlist.h \
+ /usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
+ /usr/include/c++/4.9.2/cstdio /usr/include/libio.h \
+ /usr/include/_G_config.h /usr/include/bits/stdio_lim.h \
+ /usr/include/bits/sys_errlist.h /usr/include/bits/stdio.h \
  /usr/include/c++/4.9.2/cerrno /usr/include/errno.h \
  /usr/include/bits/errno.h /usr/include/linux/errno.h \
  /usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
@@ -737,7 +738,8 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
  /usr/include/bits/huge_valf.h /usr/include/bits/huge_vall.h \
  /usr/include/bits/inf.h /usr/include/bits/nan.h \
  /usr/include/bits/mathdef.h /usr/include/bits/mathcalls.h \
- /usr/include/c++/4.9.2/sstream /usr/include/c++/4.9.2/bits/sstream.tcc \
+ /usr/include/bits/mathinline.h /usr/include/c++/4.9.2/sstream \
+ /usr/include/c++/4.9.2/bits/sstream.tcc \
  /usr/include/boost/type_traits/is_compound.hpp \
  /usr/include/boost/type_traits/is_copy_constructible.hpp \
  /usr/include/boost/noncopyable.hpp \
@@ -1111,6 +1113,7 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
  /usr/include/boost/math/tools/user.hpp \
  /usr/include/boost/detail/fenv.hpp /usr/include/c++/4.9.2/fenv.h \
  /usr/include/fenv.h /usr/include/bits/fenv.h \
+ /usr/include/bits/fenvinline.h \
  /usr/include/boost/math/special_functions/math_fwd.hpp \
  /usr/include/boost/math/special_functions/detail/round_fwd.hpp \
  /usr/include/boost/math/tools/promotion.hpp \
@@ -1306,11 +1309,6 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
  ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IallreduceW.hpp \
  ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IrecvW.hpp \
  ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IsendW.hpp \
- ../../OpenFPM_data/src/util/check_no_pointers.hpp \
- ../../OpenFPM_data/src/util/common.hpp \
- ../../OpenFPM_data/src/util/util_debug.hpp \
- /usr/include/c++/4.9.2/cxxabi.h \
- /usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cxxabi_tweaks.h \
  ../../OpenFPM_vcluster/src/util/Vcluster_log.hpp \
  ../../OpenFPM_data/src/timer.hpp \
  ../../OpenFPM_data/src/Space/SpaceBox.hpp \
@@ -1324,7 +1322,10 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
  ../../OpenFPM_data/src/util/object_util.hpp \
  ../../OpenFPM_data/src/util/object_creator.hpp \
  ../../OpenFPM_data/src/util/util_debug.hpp \
+ /usr/include/c++/4.9.2/cxxabi.h \
+ /usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cxxabi_tweaks.h \
  ../../OpenFPM_data/src/util/check_no_pointers.hpp \
+ ../../OpenFPM_data/src/util/common.hpp \
  ../../OpenFPM_data/src/util/object_s_di.hpp \
  ../../OpenFPM_data/src/util/object_si_d.hpp \
  ../../OpenFPM_devices/src/memory/ExtPreAlloc.hpp \
@@ -1399,6 +1400,7 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
  ../../OpenFPM_vcluster/src/Packer.hpp \
  ../../OpenFPM_data/src/Grid/util.hpp \
  ../../OpenFPM_data/src/Vector/util.hpp \
+ ../../OpenFPM_data/src/util/util_debug.hpp \
  ../../OpenFPM_vcluster/src/Pack_stat.hpp \
  ../../OpenFPM_vcluster/src/Pack_selector.hpp \
  ../../OpenFPM_vcluster/src/Unpacker.hpp \
@@ -1627,6 +1629,8 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
 
 /usr/include/alloca.h:
 
+/usr/include/bits/stdlib-bsearch.h:
+
 /usr/include/bits/stdlib-float.h:
 
 /usr/include/c++/4.9.2/cstdio:
@@ -1639,6 +1643,8 @@ pdata-main.o: main.cpp /usr/include/stdc-predef.h \
 
 /usr/include/bits/sys_errlist.h:
 
+/usr/include/bits/stdio.h:
+
 /usr/include/c++/4.9.2/cerrno:
 
 /usr/include/errno.h:
@@ -3051,6 +3057,8 @@ Graph/CartesianGraphFactory.hpp:
 
 /usr/include/bits/mathcalls.h:
 
+/usr/include/bits/mathinline.h:
+
 /usr/include/c++/4.9.2/sstream:
 
 /usr/include/c++/4.9.2/bits/sstream.tcc:
@@ -3883,6 +3891,8 @@ Graph/CartesianGraphFactory.hpp:
 
 /usr/include/bits/fenv.h:
 
+/usr/include/bits/fenvinline.h:
+
 /usr/include/boost/math/special_functions/math_fwd.hpp:
 
 /usr/include/boost/math/special_functions/detail/round_fwd.hpp:
@@ -4313,16 +4323,6 @@ Grid/grid_dist_id.hpp:
 
 ../../OpenFPM_vcluster/src/MPI_wrapper/MPI_IsendW.hpp:
 
-../../OpenFPM_data/src/util/check_no_pointers.hpp:
-
-../../OpenFPM_data/src/util/common.hpp:
-
-../../OpenFPM_data/src/util/util_debug.hpp:
-
-/usr/include/c++/4.9.2/cxxabi.h:
-
-/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cxxabi_tweaks.h:
-
 ../../OpenFPM_vcluster/src/util/Vcluster_log.hpp:
 
 ../../OpenFPM_data/src/timer.hpp:
@@ -4351,8 +4351,14 @@ Grid/grid_dist_key.hpp:
 
 ../../OpenFPM_data/src/util/util_debug.hpp:
 
+/usr/include/c++/4.9.2/cxxabi.h:
+
+/usr/include/c++/4.9.2/x86_64-redhat-linux/bits/cxxabi_tweaks.h:
+
 ../../OpenFPM_data/src/util/check_no_pointers.hpp:
 
+../../OpenFPM_data/src/util/common.hpp:
+
 ../../OpenFPM_data/src/util/object_s_di.hpp:
 
 ../../OpenFPM_data/src/util/object_si_d.hpp:
@@ -4501,6 +4507,8 @@ Grid/grid_dist_key.hpp:
 
 ../../OpenFPM_data/src/Vector/util.hpp:
 
+../../OpenFPM_data/src/util/util_debug.hpp:
+
 ../../OpenFPM_vcluster/src/Pack_stat.hpp:
 
 ../../OpenFPM_vcluster/src/Pack_selector.hpp:
diff --git a/src/Grid/grid_dist_id_unit_test.hpp b/src/Grid/grid_dist_id_unit_test.hpp
index 21d9fca51c7b3477c16ddf1b1343dd3f51c6e42d..b1d066fde556d3c1d6f1c519b7efa72fa4e4d3d6 100644
--- a/src/Grid/grid_dist_id_unit_test.hpp
+++ b/src/Grid/grid_dist_id_unit_test.hpp
@@ -109,11 +109,6 @@ BOOST_AUTO_TEST_CASE( grid_dist_id_iterator_test_use)
 		// Distributed grid with id decomposition
 		grid_dist_id<2, float, scalar<float>, CartDecomposition<2,float>> g_dist(sz,domain,g);
 
-//		g_dist.getDecomposition().debugPrint();
-
-		// Write the decomposition
-		g_dist.getDecomposition().write("output/");
-
 		// check the consistency of the decomposition
 		bool val = g_dist.getDecomposition().check_consistency();
 		BOOST_REQUIRE_EQUAL(val,true);