     }
 }
 
-class MarkNotificationsReadOperationTests: CloudKitOperationTests<TestMarkNotificationsReadOperation> {
-
+class MarkNotificationsReadOperationTests: CloudKitOperationTests {
+
+    var target: TestMarkNotificationsReadOperation!
+    var operation: CloudKitOperation<TestMarkNotificationsReadOperation>!
     var toMark: [TestMarkNotificationsReadOperation.NotificationID]!
 
     override func setUp() {
         super.setUp()
         toMark = [ "this-is-an-id", "this-is-another-id" ]
         target = TestMarkNotificationsReadOperation(markIDsToRead: toMark)
-        operation = CloudKitOperation(target)
+        operation = CloudKitOperation(operation: target, reachability: reachability)
     }
 
     func test__get_notification_id() {

    }
}

class FetchNotificationChangesOperationTests: CloudKitOperationTests<TestFetchNotificationChangesOperation> {

    var token: TestFetchNotificationChangesOperation.ServerChangeToken!

    override func setUp() {
        super.setUp()
        token = "i'm a server token"
        target = TestFetchNotificationChangesOperation(token: token)
        operation = CloudKitOperation(target)
    }

    func test__get_set_notification_charged_block() {

    }
}

class ModifyRecordZonesOperationTests: CloudKitOperationTests {

    var target: TestModifyRecordZonesOperation!
    var operation: CloudKitOperation<TestModifyRecordZonesOperation>!

    override func setUp() {
        super.setUp()
        target = TestModifyRecordZonesOperation()
        operation = CloudKitOperation(operation: target, reachability: reachability)
    }

    func test__get_zones_to_save() {
        let zones = [ "a-zone", "another-zone" ]
