 typealias TheoNodeRequestDeleteCompletionBlock = (error: NSError?) -> Void
 typealias TheoNodeRequestRelationshipCompletionBlock = (relationshipMeta: RelationshipMeta?, error: NSError?) -> Void
 typealias TheoRelationshipRequestCompletionBlock = (relationships:Array<Relationship>, error: NSError?) -> Void
+typealias TheoRawRequestCompletionBlock = (response: AnyObject?, error: NSError?) -> Void
+
+let TheoDBMetaExtensionsKey: String        = "extensions"
+let TheoDBMetaNodeKey: String              = "node"
+let TheoDBMetaNodeIndexKey: String         = "node_index"
+let TheoDBMetaRelationshipIndexKey: String = "relationship_index"
+let TheoDBMetaExtensionsInfoKey: String    = "extensions_info"
+let TheoDBMetaRelationshipTypesKey: String = "relationship_types"
+let TheoDBMetaBatchKey: String             = "batch"
+let TheoDBMetaCypherKey: String            = "cypher"
+let TheoDBMetaIndexesKey: String           = "indexes"
+let TheoDBMetaConstraintsKey: String       = "constraints"
+let TheoDBMetaTransactionKey: String       = "transaction"
+let TheoDBMetaNodeLabelsKey: String        = "node_labels"
+let TheoDBMetaNeo4JVersionKey: String      = "neo4j_version"
 
 struct DBMeta: Printable {
   

                let nodeResource: String = self.baseURL + "/db/data/node/" + nodeID + "/labels"
                
                let nodeURL: NSURL = NSURL(string: nodeResource)
                let nodeRequest: Request = Request(url: nodeURL, additionalHeaders: self.authHeaders)
                
                nodeRequest.postResource(labels, forUpdate: false,
                    successBlock: {(data, response) in

        }

        self.baseURL = baseURL
    }
  
    convenience init(baseURL: String) {
