#include <bulk.hpp>
#include <iostream>

int main() {
    auto center = bulk::center();
    center.spawn(center.available_processors(), [&center](int s, int p) {
        for (int t = 0; t < p; ++t) {
            center.send<int, int>(t, s, s);
        }

        center.sync();

        if (s == 0) {
            for (auto message : center.messages<int, int>()) {
                std::cout << message.tag << ", " << message.content << std::endl;
            }
        }
    });

    return 0;
}

#include <bulk.hpp>
#include <iostream>

int main() {
    bulk::spawn(bulk::available_processors(), [](int s, int p) {
        for (int t = 0; t < p; ++t) {
            bulk::send<int, int>(t, s, s);
        }

        bulk::sync();

        if (s == 0) {
            for (auto message : bulk::messages<int, int>()) {
                std::cout << message.tag << ", " << message.content << std::endl;
            }
        }
    });

    return 0;
}

--- 
+++ 
@@ -2,15 +2,16 @@
 #include <iostream>
 
 int main() {
-    bulk::spawn(bulk::available_processors(), [](int s, int p) {
+    auto center = bulk::center();
+    center.spawn(center.available_processors(), [&center](int s, int p) {
         for (int t = 0; t < p; ++t) {
-            bulk::send<int, int>(t, s, s);
+            center.send<int, int>(t, s, s);
         }
 
-        bulk::sync();
+        center.sync();
 
         if (s == 0) {
-            for (auto message : bulk::messages<int, int>()) {
+            for (auto message : center.messages<int, int>()) {
                 std::cout << message.tag << ", " << message.content << std::endl;
             }
         }
Update syntax for message passing example
