public IEnumerable<IModelNode> Flatten() { yield return this; foreach (var vertex in FlattenChildren(Children)) { yield return vertex; } }