Updated comments and refactored the code, now all mpi function are based on an independant communicator