                         functionName: nil,
                         headers: request.headers as! [String: String])
                     
-                    // seach requests require HTTP body
-                    if searchParameters == nil {
-                        
-                        // return BadRequest
-                        response.statusCode = ServerStatusCode.BadRequest.rawValue
-                        
-                        // tell delegate
-                        self.delegate?.server(self, didPerformRequest: serverRequest, withResponse: ServerResponse(statusCode: ServerStatusCode.BadRequest, JSONResponse: nil), userInfo: [String : AnyObject]())
-                        
-                        return
-                    }
-                    
                     // create server request
-                    
                     let (serverResponse, userInfo) = self.responseForSearchRequest(serverRequest)
                     
                     // return error

        userInfo[ServerUserInfoKey.ManagedObjectContext.rawValue] = context
        
        // fetch managedObject
        let (managedObject, error) = FetchEntity(entity, withResourceID: resourceID!, usingContext: context,  resourceIDAttributeName: self.resourceIDAttributeName ,shouldPrefetch: true)
        
        // internal error
        if error != nil {
            
            self.delegate?.server(self, didEncounterInternalError: error!, forRequest: request, userInfo: userInfo)
            
            let response = ServerResponse(statusCode: ServerStatusCode.InternalServerError, JSONResponse: nil)
            

    func addResourceIDAttribute(resourceIDAttributeName: String) {
        
        // add a resourceID attribute to managed object model
        for (_, entity) in self.entitiesByName as [String: NSEntityDescription] {
            
            if entity.superentity == nil {
                
