Meanwhile the components dictionary in an ExtendableGrid accumulates all kind of adjacency and may contain redundant information that can be recalculated again from the main adjacencies (like NodeCells, but also FaceNodes etc.). We may think of some "garbage collecting" mechanism that checks if a component is still needed and erases it otherwise.