    // Construct a pile of boxes.
    // Force them to sleep until the first time they are touched.
    // Group them together so that touching any box wakes all of them.
    cpFloat size = 20;
    cpFloat mass = 1;
    cpFloat moment = cpMomentForBox(mass, size, size);

    cpBody *lastBody = NULL;

    for(int i=0; i<5; i++){
      cpBody *body = cpSpaceAddBody(space, cpBodyNew(mass, moment));
      cpBodySetPos(body, cpv(0, i*size));

      cpShape *shape = cpSpaceAddShape(space, cpBoxShapeNew(body, size, size));
      cpShapeSetFriction(shape, 0.7);

      // You can use any sleeping body as a group identifier.
      // Here we just keep a reference to the last body we initialized.
      // Passing NULL as the group starts a new sleeping group.
      // You MUST do this after completely initializing the object.
      // Attaching shapes or calling setter functions will wake the body back up.
      cpBodySleepWithGroup(body, lastBody);
      lastBody = body;
    }