  We prove that every graph has a canonical tree of tree-decompositions that
distinguishes all principal tangles (these include the ends and various kinds
of large finite dense structures) efficiently.
  Here `trees of tree-decompositions' are a slightly weaker notion than
`tree-decompositions' but much more well-behaved than `tree-like metric
spaces'. This theorem is best possible in the sense that we give an example
that `trees of tree-decompositions' cannot be strengthened to
`tree-decompositions' in the above theorem.
  This implies results of Dunwoody and Kr\"on as well as of Carmesin, Diestel,
Hundertmark and Stein. Beyond that for locally finite graphs our result gives
for each $k\in\mathbb N$ canonical tree-decompositions that distinguish all
$k$-distinguishable ends efficiently.
