                 })
         }
     }
+
+    public static func system<State, Event>(
+            initialState: State,
+            reduce: @escaping (State, Event) -> State,
+            feedback: (SharedSequence<SharingStrategy, State>) -> SharedSequence<SharingStrategy, Event>...
+        ) -> SharedSequence<SharingStrategy, State> {
+        return system(initialState: initialState, reduce: reduce, feedback: feedback)
+    }
 }

            initialState: State,
            reduce: @escaping (State, Event) -> State,
            scheduler: SchedulerType,
            feedback: (Observable<State>) -> Observable<Event>...
        ) -> Observable<State> {
        return Observable<State>.deferred {
            let replaySubject = ReplaySubject<State>.create(bufferSize: 1)

    public static func system<State, Event>(
            initialState: State,
            reduce: @escaping (State, Event) -> State,
            feedback: [(SharedSequence<SharingStrategy, State>) -> SharedSequence<SharingStrategy, Event>]
        ) -> SharedSequence<SharingStrategy, State> {
        return SharedSequence<SharingStrategy, State>.deferred {
            let replaySubject = ReplaySubject<State>.create(bufferSize: 1)
