             completed(300)]
 		
 		// provide simple predicate that always return false (so, sequence will not repeated)
-		let res = scheduler.start(0, subscribed: 0, disposed: 1000) {
-			self.sampleValues.asObservable().repeatWithBehavior(.immediate(maxCount: 3), scheduler: self.scheduler) { _ in
-				false
-			}
+		let res = scheduler.start(created: 0, subscribed: 0, disposed: 1000) {
+			self.sampleValues
+                .asObservable()
+                .repeatWithBehavior(.immediate(maxCount: 3), scheduler: self.scheduler, shouldRepeat: self.predicateFalse)
 		}
 		
 		XCTAssertEqual(res.events, correctValues)
 	}
 
     func testImmediateNotRepeatWithPredicateWithError() {
-		let res = scheduler.start(0, subscribed: 0, disposed: 1000) {
-            self.sampleValuesWithError.asObservable().repeatWithBehavior(.immediate(maxCount: 3), scheduler: self.scheduler) { _ in
-                false
-            }
+		let res = scheduler.start(created: 0, subscribed: 0, disposed: 1000) {
+            self.sampleValuesWithError
+                .asObservable()
+                .repeatWithBehavior(.immediate(maxCount: 3), scheduler: self.scheduler, shouldRepeat: self.predicateFalse)
         }
         XCTAssertEqual(res.events, erroredCorrectValues)
     }

			next(822, 2),
			completed(902)]
		
		let res = scheduler.start(0, subscribed: 0, disposed: 1000) {
			self.sampleValues.asObservable().repeatWithBehavior(.delayed(maxCount: 3, time: 1.0), scheduler: self.scheduler)
		}
		

            next(822, 2),
            completed(902)]

        let res = scheduler.start(created: 0, subscribed: 0, disposed: 1000) {
            self.sampleValues
                .asObservable()
                .repeatWithBehavior(.delayed(maxCount: 3, time: 1.0), scheduler: self.scheduler, shouldRepeat: self.predicateTrue)
		}
		
		XCTAssertEqual(res.events, correctValues)
