public AssociativyTagNodesPartHandler(IGraphManager graphManager)
        {
            OnActivated<AssociativyTagNodesPart>((context, part) =>
            {
                part.ConnectedTagNodesField.Loader(() =>
                    {
                        var graphs = graphManager.FindGraphs(new GraphContext { ContentTypes = new[] { "TagNode", context.ContentType } });
                        var kvps = new List<KeyValuePair<IGraph, IEnumerable<IContent>>>();

                        foreach (var graph in graphs)
                        {
                            var items = context.ContentItem.ContentManager
                                .Query("TagNode")
                                .ForContentItems(graph.Services.ConnectionManager.GetNeighbourIds(context.ContentItem.Id))
                                .Join<AssociativyNodeLabelPartRecord>()
                                .List<IContent>();

                            kvps.Add(new KeyValuePair<IGraph, IEnumerable<IContent>>(graph, items));
                        }

                        return kvps;
                    });

                part.TagNodeListingProjectionField.Loader(() => context.ContentItem.ContentManager.Get(part.Settings.GetModel<AssociativyTagNodesTypePartSettings>().ProjectionId));
            });
        }