refactored structure of non-blocking calls and mpi datatype skeleton