   private let direction: ReactiveProperty<TransitionDirection>
   private let toggledValues: MotionObservable<[T]>
   private let toggledOffsets: MotionObservable<[CGFloat]>
+  private let toggledDelay: MotionObservable<CGFloat>
 }

  public init(duration: CGFloat,
              forwardValues: [T],
              direction: ReactiveProperty<TransitionDirection>,
              forwardKeyPositions: [CGFloat] = [],
              system: @escaping TweenToStream<T> = coreAnimation,
              timeline: Timeline? = nil) {


    self.toggledValues = direction.dedupe().rewrite([.backward: backwardValues, .forward: forwardValues])
    self.toggledOffsets = direction.dedupe().rewrite([.backward: backwardKeyPositions, .forward: forwardKeyPositions])
    self.toggledDelay = direction.dedupe().rewrite([.backward: delayAfter, .forward: delayBefore])
    super.init(duration: duration, values: values, system: system, timeline: timeline)
  }

