          direction: TMBarUpdateDirection,
          expectedAnimation: TMAnimation) {
         self.barView = barView
-        
-        let focusArea = barView.grid.convert(barView.layout.focusArea(for: position, capacity: capacity),
-                                             from: barView.layout.view)
-        self.context = Context(position: position,
-                               capacity: capacity,
-                               direction: direction,
-                               focusArea: focusArea,
-                               animation: expectedAnimation)
+        self.position = position
+        self.capacity = capacity
+        self.direction = direction
+        self.animation = expectedAnimation
     }
     
     /// Update a component.

        let focusArea: CGRect
        let focusRect: TMBarViewFocusRect
        
        fileprivate let animation: TMAnimation
        
        init(position: CGFloat,
             capacity: Int,
             direction: TMBarUpdateDirection,
             focusArea: CGRect,
             animation: TMAnimation) {
            self.position = position
            self.capacity = capacity
            self.direction = direction
            self.focusArea = focusArea
            self.focusRect = TMBarViewFocusRect(rect: focusArea, at: position, capacity: capacity)
            self.animation = animation
        }
    }
    
    private weak var barView: TMBarView<LayoutType, ButtonType, IndicatorType>!
    let context: Context
    
    // MARK: Init
    

    ///   - component: Component to update.
    ///   - action: Action closure with Component relevant context.
    func update(component: TMTransitionStyleable, action: @escaping (Context) -> Void) {
        let transitionStyle = component.transitionStyle
        let animation = makeAnimation(for: transitionStyle, expected: self.animation)

        let update = {
            let context = self.generateContext(for: transitionStyle)
            action(context)
        }
        
        if animation.isEnabled {
            UIView.animate(withDuration: animation.duration) {
                update()
            }
        } else {
            update()
        }
    }
    
