       do @subscribe
 
   subscribe: ->
+    return if @subscribed
     return if !@runtime or !@graph
     @graph.on 'endTransaction', @send
     @graph.on 'addNode', @addNode

    @graph.removeListener 'removeInport', @removeInport
    @graph.removeListener 'addOutport', @addOutport
    @graph.removeListener 'removeOutport', @removeOutport

    @outPorts.sent.disconnect()
    @outPorts.queued.disconnect()

      public: pub
      graph: @graph.properties.id

  addOutport: (pub, priv) =>
    @registerChange 'addoutport',
      public: pub
      node: priv.process
