public AreaInstance Visit(WidgetInstance widget, IEnumerable <int> path) { return(widget.Components.Select(c => c.Accept(this, path)).FirstOrDefault(a => a != null)); }