Contained Objects
Inner objects are constructed during construction of outer object
Outer object never passes references to inner objects accessible to any other object
Outer object is fully synchronized or is in turn uniquely embedded within another fully synchronized object