             node = new nodeModel attrs
 
         else
-            throw new Error 'Unknown node type'
+            throw new ContextNodeError 'Unknown node type'
 
         if parent
             node.parent = parent


    class ContextModel extends c.Backbone.Model
        nodeModel: ContextNodeModel

        deferred:
            # Defer and only execute once

        # nodes to the branch
        promote: (nodes...) ->
            if nodes.length is 0
                throw new ContextNodeError 'At least one node must be supplied'

            if @isRoot()
                type = 'and'
