 
 extension OPRCKOperation where T: CKPreviousServerChangeToken {
 
-    internal var previousServerChangeToken: T.ServerChangeToken? {
+    var previousServerChangeToken: T.ServerChangeToken? {
         get { return operation.previousServerChangeToken }
         set { operation.previousServerChangeToken = newValue }
     }


extension OPRCKOperation where T: CKFetchRecordsOperationType {

    internal typealias FetchRecordsCompletionBlock = [T.RecordID: T.Record]? -> Void

    internal var recordIDs: [T.RecordID]? {
        get { return operation.recordIDs }
        set { operation.recordIDs = newValue }
    }

    internal var perRecordProgressBlock: ((T.RecordID, Double) -> Void)? {
        get { return operation.perRecordProgressBlock }
        set { operation.perRecordProgressBlock = newValue }
    }

    internal var perRecordCompletionBlock: ((T.Record?, T.RecordID?, NSError?) -> Void)? {
        get { return operation.perRecordCompletionBlock }
        set { operation.perRecordCompletionBlock = newValue }
    }

    internal func setFetchRecordsCompletionBlock(block: FetchRecordsCompletionBlock) {
        operation.fetchRecordsCompletionBlock = { [unowned target] recordsByID, error in
            if let error = error, target = target as? GroupOperation {
                target.aggregateError(error)


extension OPRCKOperation where T: CKMoreComing {

    var moreComing: Bool {
        return operation.moreComing
    }
}
