       group.nodes[index] = newId
 
     @emit 'renameNode', oldId, newId
+
+  # ## Changing a node's metadata
+  #
+  # Node metadata can be set or changed by calling this method.
+  setNodeMetadata: (id, metadata) ->
+    node = @getNode id
+    return unless node
+    node.metadata = {} unless node.metadata
+
+    for item, val of metadata
+      node.metadata[item] = val
+
+    @emit 'changeNode', node
+
 
   # ## Connecting nodes
   #

            continue
        @emit 'removeEdge', edge
        @edges.splice index, 1

  # ## Adding Initial Information Packets
  #

  #
  # or:
  #
  #     myGraph.removeEdge 'Display', 'out', 'Foo', 'in'
  #
  # Removing a connection will emit the `removeEdge` event.
  removeEdge: (node, port, node2, port2) ->
