A distributed MapReduce framework in C++ using Policy Based Design