 typealias TheoRelationshipRequestCompletionBlock = (relationships:Array<Relationship>, error: NSError?) -> Void
 typealias TheoRawRequestCompletionBlock = (response: AnyObject?, error: NSError?) -> Void
 typealias TheoTransactionCompletionBlock = (response: Dictionary<String, AnyObject>, error: NSError?) -> Void
+typealias TheoCypherQueryCompletionBlock = (cypher: Cypher?, error: NSError?) -> Void
 
 let TheoDBMetaExtensionsKey: String        = "extensions"
 let TheoDBMetaNodeKey: String              = "node"

            if (completionBlock != nil) {
                
                if let responseData: NSData = data {
                    
                    let JSON: AnyObject? = NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments, error: nil) as AnyObject!
                    let jsonAsDictionary: [String:AnyObject]! = JSON as [String:AnyObject]
                    
                    completionBlock!(response: jsonAsDictionary, error: nil)
                }
            }
            
        }, errorBlock: {(error, response) in
                
                if (completionBlock != nil) {
                    completionBlock!(response: [String:AnyObject](), error: error)
                }
        })
    }

    /// :param: Dictionary<String,AnyObject> params
    /// :param: TheoRawRequestCompletionBlock completionBlock
    /// :returns: Void
    func executeCypher(query: String, params: Dictionary<String,AnyObject>, completionBlock: TheoCypherQueryCompletionBlock?) -> Void {
        
        let cypherPayload: Dictionary<String, AnyObject> = ["query" : query, "params" : params]
        let cypherResource: String = self.baseURL + "/db/data/cypher"
