ordered communicator to be in the same order as the API docs