private static void RecreateEdges(XElement graph, String nmsp, Dictionary <String, DelayGraphVertex> nodeIdToVertexMap, DelayGraph delayGraph)
        {
            // get the edges
            foreach (var edge in graph.Elements(nmsp + "edge"))
            {
                var  source     = nodeIdToVertexMap[(string)edge.Attribute("source")];
                var  sink       = nodeIdToVertexMap[(string)edge.Attribute("target")];
                int  delay      = 0;
                bool isFeedback = false;
                var  isDelay    = true;

                // this should only execute twice
                foreach (var data in edge.Elements())
                {
                    if (isDelay)
                    {
                        delay   = (int)data;
                        isDelay = false;
                        continue;
                    }
                    isFeedback = (bool)data;
                }
                var newEdge = new DelayGraphEdge(source, sink, delay, isFeedback);
                delayGraph.AddEdge(newEdge);
            }
        }