     @parseNodes = (data, pin, keyed={}) ->
       root = {}
 
+      console.log "Keyed: ", keyed
+
       # Index node list by ID, merging/updating if keyed was provided
       for node in data.nodes
+        console.log "Node: ", node
         keyed[node.id] = node
 
       # Step through IDs
       for id of keyed
+        console.log "Id: ", id
         node = keyed[id]
         pid = node.facts?.parent_id
         if pid? # Has parent ID?

            pnode.children ?= [] # Initialize if first child
            pnode.children.push node # Add to parent's children
          else # We're an orphan (broken data or from previous merge)
            delete keyed[id] # No mercy for orphans!
        else if node.name is "workspace" # Mebbe root node?
          root = node # Point at it
        else # Invalid root node!
          delete keyed[id] # Pew Pew!

      pin keyed if pin? # Update pin with keyed

        # Start long-poller
        @poll "/roush/nodes/updates/#{@sKey}/#{@txID}?poll", (data) =>
          console.log "Got update: ", data
          setTimeout @updateNodes(data, @wsKeys, @wsTemp), 1000

        # Load initial data, and poll every config.interval ms
        @getNodes "/roush/nodes/", @wsKeys, @wsTemp

    @siteActive = ntrapy.selector (data) =>
      null # TODO:
