     /** The URL of the NetworkObjects server that this client will connect to. */
     public var serverURL: NSURL
     
+    /** The defualt URL session this store will use for requests. Requests can still be made to the server using another URL session. */
+    public var defaultURLSession: NSURLSession = NSURLSession.sharedSession()
+    
     // MARK: - Private Properties
     
     /** The managed object context running on a background thread for asyncronous caching. */

        })
    }
    
    public func deleteManagedObject(managedObject: NSManagedObject, URLSession: NSURLSession = NSURLSession.sharedSession(), completionBlock: ((error: NSError?) -> Void)) -> NSURLSessionDataTask {
        
        // get resourceID
        let resourceID = managedObject.valueForKey(self.resourceIDAttributeName) as! UInt
        
        return self.deleteResource(managedObject.entity, withID: resourceID, URLSession: URLSession, completionBlock: { (httpError) -> Void in
            
            if httpError != nil {
                

        
        // call API method
        
        return self.searchForResource(entity, withParameters: searchParameters, URLSession: URLSession ?? self.defaultURLSession, completionBlock: { (httpError, results) -> Void in
            
            if httpError != nil {
                
