     public let dateCachedAttributeName: String?
     
     /** The name of the Integer attribute that holds that resource identifier. */
-    public let resourceIDAttributeName: String = "ID"
-    
-    /** The path that the NetworkObjects server uses for search requests. If not specified then doing a search request will produce an error. */
+    public let resourceIDAttributeName: String
+    
+    /** The path that the NetworkObjects server uses for search requests. If not specified, doing a search request will produce an error. */
     public let searchPath: String?
     
     /** This setting determines whether JSON requests made to the server will contain whitespace or not. */
-    public let prettyPrintJSON: Bool = false
+    public let prettyPrintJSON: Bool
     
     /** The URL of the NetworkObjects server that this client will connect to. */
     public let serverURL: NSURL

    
    // MARK: - Requests
    
    /** Performs a search request on the server. The supplied fetch request's predicate must be a NSComparisonPredicate. */
    public func performSearch(fetchRequest: NSFetchRequest, URLSession: NSURLSession, completionBlock: ((error: NSError?, results: [NSManagedObject]?) -> Void)) -> NSURLSessionDataTask {
        
        // build JSON request from fetch request

        })
    }
    
    public func performFunction(function functionName: String, forManagedObject managedObject: NSManagedObject, withJSONObject JSONObject: [String: AnyObject]?, URLSession: NSURLSession, completionBlock: ((error: NSError?, functionCode: ServerFunctionCode?, JSONResponse: [String: AnyObject]?) -> Void)) -> NSURLSessionDataTask {
        
        // get resourceID
        let resourceID = managedObject.valueForKey(self.resourceIDAttributeName) as UInt
