 
   subscribeDataflowEdge: (edge, graph) ->
     unless edge.nofloEdge
-      edge.nofloEdge = graph.nofloGraph.addEdge edge.source.parentNode.nofloNode.id, edge.source.id, edge.target.parentNode.nofloNode.id, edge.target.id,
+      nofloEdge = graph.nofloGraph.addEdge edge.source.parentNode.nofloNode.id, edge.source.id, edge.target.parentNode.nofloNode.id, edge.target.id,
         route: edge.get 'route'
+
+      # Reference one another
+      edge.nofloEdge = nofloEdge
+      nofloEdge.dataflowEdge = edge
 
     edge.on 'change:route', ->
       edge.nofloEdge.metadata.route = edge.get 'route'
 
   subscribeNoFloEvents: (graph, runtime) ->
     graph.on 'addNode', (nfNode) =>
-      @addNodeDataflow nfNode, graph.dataflowGraph
-      @addNodeRuntime nfNode, runtime
+      setTimeout =>
+        @addNodeDataflow nfNode, graph.dataflowGraph
+        @addNodeRuntime nfNode, runtime
+      , 0
     graph.on 'removeNode', (nfNode) =>
       if nfNode.dataflowNode?
         nfNode.dataflowNode.remove()
       runtime.sendGraph 'removenode',
         id: nfNode.id
     graph.on 'addEdge', (nfEdge) =>
-      @addEdgeDataflow nfEdge, graph.dataflowGraph
-      @addEdgeRuntime nfEdge, runtime
+      setTimeout =>
+        @addEdgeDataflow nfEdge, graph.dataflowGraph
+        @addEdgeRuntime nfEdge, runtime
+      , 0
     graph.on 'removeEdge', (nfEdge) =>
       if nfEdge.from.node? and nfEdge.to.node?
         if nfEdge.dataflowEdge?

      # Reference one another
      node.nofloNode = nofloNode
      nofloNode.dataflowNode = node


    node.on 'change:label', (node, newName) ->
      # Change label

      destination = "#{edge.to.port.toUpperCase()} #{edge.to.node}"
      "#{source} -> #{destination}"

    Edge = @dataflow.module 'edge'
    nfEdge.metadata = {} unless nfEdge.metadata
    dfEdge = new Edge.Model
      id: edgeToId nfEdge
      parentGraph: dfGraph
      source: nfEdge.from
      target: nfEdge.to
      route: ( if nfEdge.metadata.route? then nfEdge.metadata.route else 0 )

    # Reference one another
    dfEdge.nofloEdge = nfEdge
    nfEdge.dataflowEdge = dfEdge

    # Add to Graph
    dfGraph.edges.add dfEdge

  addEdgeRuntime: (edge, runtime) ->
    runtime.sendGraph 'addedge',
