private static GraphStates CreateGraphStates(GraphHooks<string> graphHooks, Func<string, IAuthorizationEntity, VisitableNode> nodeFactory)
 {
   return new GraphStates(graphHooks, nodeFactory);
 }
 public static DirectedAcyclicGraph CreateGraph(GraphHooks<string> graphHooks)
 {
   var nodeFactory = CreateNodeFactory();
   return new DirectedAcyclicGraph(CreateGraphStates(graphHooks, nodeFactory).Rootless, CreateNodeStorage(nodeFactory));
 }