#### §2.7.(c) Layering

If roles of a team `Secondary` are played by roles of another team `Primary` (i.e., base classes are roles), the team `Secondary` defines a layer over the team `Primary`. Such layering requires a final reference `anchor` from `Secondary` to an instance of `Primary`. All playedBy declarations within `Secondary` specify their base classes anchored to that final link `anchor`.

Due to the anchored base types, layered teams implicitly support the following guarantee: all base objects of roles of `Secondary` are contained within the team instance specified by the link `anchor`. If roles of `Secondary` contain any callin bindings to non-static base methods, these will be triggered only when a base method is invoked on a base instance contained in the team specified by `anchor`.
In accordance with §2.6.(a) the anchor in such anchored playedBy declarations could also be the pseudo identifier `base`, provided that `Secondary` is a nested team, which has a playedBy binding to `Primary` as its base class. This situation is part of the second example below (§2.7.(d)) (see `T1 playedBy TB1`).