                 }
             }
         })
+        
+        createNodeWithLabelsOperation.addDependency(createNodeOperation)
+        
+        nodeSaveOperationQueue.addOperation(createNodeOperation)
+        nodeSaveOperationQueue.addOperation(createNodeWithLabelsOperation)
     }
     
     /// Update a node for a given set of properties

    /// :returns: Void
    public func createNode(node: Node, labels: Array<String>, completionBlock: TheoNodeRequestCompletionBlock?) -> Void {

        let nodeSaveDispatchGroup: dispatch_group_t = dispatch_group_create()
        var createdNodeWithoutLabels: Node?

        dispatch_group_enter(nodeSaveDispatchGroup)

        self.createNode(node, completionBlock: {(node, error) in
        
            if let returnedNode: Node = node {
                createdNodeWithoutLabels = returnedNode
            }
            
            dispatch_group_leave(nodeSaveDispatchGroup)
        })
        
        dispatch_group_notify(nodeSaveDispatchGroup, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), {

            if let nodeWithLabels: Node = createdNodeWithoutLabels {
            
                let nodeID: String = nodeWithLabels.meta!.nodeID()
                let nodeResource: String = self.baseURL + "/db/data/node/" + nodeID + "/labels"
                

                nodeRequest.postResource(labels, forUpdate: false,
                    successBlock: {(data, response) in
                        
                        NSOperationQueue.mainQueue().addOperationWithBlock({
                            if (completionBlock != nil) {
                                completionBlock!(node: nil, error: nil)
                            }
                        })
                    },
                    errorBlock: {(error, response) in

                        NSOperationQueue.mainQueue().addOperationWithBlock({
                            if (completionBlock != nil) {
                                completionBlock!(node: nil, error: error)
                            }
                        })
                })
            } else {
                
                if (completionBlock != nil) {
