Each IslandGroup owns a SolverBodyContainer containing the data required for solving the constraints in the group's islands. Constraints will hold pointers to SolverBodies in the Island's SolverBodyContainer. ConstraintSolvers read and write to their SolverBodies and do not access particles directly.