         @connections = []
         @graph = graph
 
+        # As most NoFlo networks are long-running processes, the
+        # network coordinator marks down the start-up time. This
+        # way we can calculate the uptime of the network.
         @startupDate = new Date()
 
-        @graph.on "addNode", (node) =>
+        # A NoFlo graph may change after network initialization.
+        # For this, the network subscribes to the change events from
+        # the graph.
+        #
+        # In graph we talk about nodes and edges. Nodes correspond
+        # to NoFlo processes, and edges to connections between them.
+        @graph.on 'addNode', (node) =>
             @addNode node
-        @graph.on "removeNode", (node) =>
+        @graph.on 'removeNode', (node) =>
             @removeNode node
-        @graph.on "addEdge", (edge) =>
+        @graph.on 'addEdge', (edge) =>
             @addEdge edge
-        @graph.on "removeEdge", (edge) =>
+        @graph.on 'removeEdge', (edge) =>
             @removeEdge edge
 
+    # The uptime of the network is the current time minus the start-up
+    # time, in seconds.
     uptime: -> new Date() - @startupDate
 
+    # ## Loading components
+    #
+    # Components can be passed to the NoFlo network in two ways:
+    #
+    # * As direct, instantiated JavaScript objects
+    # * As filenames
     load: (component) ->
-        if typeof component is "object"
+        # Direct component instance, return as is
+        if typeof component is 'object'
             return component
         try
             if component.substr(0, 1) is "."

                throw error
        implementation.getComponent()

    addNode: (node) ->
        return if @processes[node.id]

        process = {}

        if node.component
            process.component = @load node.component

        process.id = node.id

        if node.config and process.component.initialize
            process.component.initialize node.config

        @processes[process.id] = process

    removeNode: (node) ->


        delete @processes[node.id]

    # Get process by its ID.
    getNode: (id) ->
        @processes[id]

