   isSubgraph: ->
     true
 
-  shutdown: (callback) ->
-    unless callback
-      callback = ->
-    return callback() unless @started
+  setUp: (callback) ->
+    @starting = true
+    unless @isReady()
+      @once 'ready', =>
+        @setUp callback
+      return
     return callback null unless @network
-    @network.stop (err) =>
+    @network.start (err) ->
       return callback err if err
-      super()
+      @starting = false
+      do callback
+
+  tearDown: (callback) ->
+    @starting = false
+    return callback null unless @network
+    @network.stop (err) ->
+      return callback err if err
       do callback
 
 exports.getComponent = (metadata) -> new Graph metadata

    @network = null
    @ready = true
    @started = false
    @baseDir = null
    @loader = null
    @load = 0

      @inPorts.add targetPortName, port
      @inPorts[targetPortName].once 'connect', =>
        # Start the network implicitly if we're starting to get data
        return if @starting
        return if @isStarted()
        @start ->

    for portName, port of outPorts
      targetPortName = @isExportedOutport port, name, portName
