     self.batchSize = 0
     self.queryOffset = 0
     self.entity = entity
+    self.sortDescriptors = []
   }
 
   class func query(entity: String) -> ParrotQuery {
     return ParrotQuery(entity: entity)
   }
+  
+  func copyWithZone(zone: NSZone) -> AnyObject {
+    var query = ParrotQuery.allocWithZone(zone)
+    query.entity = self.entity
+    query.queryPredicate = self.queryPredicate
+    query.expressionDescription = self.expressionDescription;
+    query.sortDescriptors = self.sortDescriptors;
+    query.limitCount = self.limitCount;
+    query.batchSize = self.batchSize;
+    query.queryOffset = self.queryOffset;
+    return query
+  }
 
   func same() -> ParrotQuery {
-    return ParrotQuery(entity: self.entity!)
+    return ParrotQuery(entity: self.entity)
   }
 
   func query(key: String, op: PQOperator, value: AnyObject) {

    self.expressionDescription = expDescription
  }
  
  
  
  
  
  
  
  
  
  
  
  
  
}
    
    var operatorStr = op.rawValue
    var predicate = NSPredicate(format: "%@ %@ \"%@\"", argumentArray: [key, operatorStr, value])
    self.queryPredicate = predicate
  }
  
  func query(key: String, function: PQFunction) {
