         case DELETE = "DELETE"
     }
     
+    enum RecordPolicy : String {
+        case Override = "Override"
+        case Record = "Record"
+    }
+    
+    var recordPolicy = RecordPolicy.Record
+    var recording = false
+    
     func loadDefinitions() {
         
         guard let bundle = bundle else {
             fatalError("You must provide a bundle via NSBundle(class:) or NSBundle.mainBundle() before continuing.")
         }
         
-        let definitionsPath = bundle.pathForResource("Mocks", ofType: "plist")
-        if let definitions = NSDictionary(contentsOfFile: definitionsPath!) as? Dictionary<String,AnyObject>,
+        if let definitionsPath = bundle.pathForResource("Mocks", ofType: "plist"),
+            let definitions = NSDictionary(contentsOfFile: definitionsPath) as? Dictionary<String,AnyObject>,
             let mocks = definitions["mocks"] as? Dictionary<String,AnyObject>,
             let mimes = definitions["mimes"] as? Dictionary<String,String> {
             self.mocks = mocks

        return nil
    }
    
}

            fatalError("Couldn't find definitions for request: \(requestMethod) make sure to create a node for it in the plist")
        }
        
        if let responseFile = definitionsForMethod[url.absoluteString] as? String {
            
            if let responsePath = bundle?.pathForResource(responseFile, ofType: "") {
                return NSURL(fileURLWithPath: responsePath)
            } else if let responsePath = mockedResponseFilePath(url) {
                return NSURL(fileURLWithPath: responsePath)
            }
        }
        return url
    }
    
    /**
