     ///   - capacity: Capacity.
     /// - Returns: Focus area.
     private func makeFocusArea(for position: CGFloat, capacity: Int) -> CGRect {
-        return barView.grid.convert(barView.layout.focusArea(for: position, capacity: capacity),
-                                    from: barView.layout.view)
+        let focusArea = barView.grid.convert(barView.layout.focusArea(for: position, capacity: capacity),
+                                             from: barView.layout.view)
+        self.focusArea = focusArea
+        return focusArea
     }
 }

    /// Generate a new context from an existing one, that takes account of animation style.
    ///
    /// - Parameters:
    ///   - context: Original context.
    ///   - transitionStyle: Animation style.
    /// - Returns: Context relevant for animation style.
    private func generateContext(from context: Context, animationStyle: TMTransitionStyle) -> Context {
        let position = makePosition(from: context.position, for: animationStyle)
        let focusArea = makeFocusArea(for: position, capacity: context.capacity)
        let animation = makeAnimation(for: animationStyle, expected: context.animation)
        return Context(position: position,
                       capacity: context.capacity,
                       direction: context.direction,
                       focusArea: focusArea,
                       animation: animation)
    }
    
    /// Generate a new position dependending on animation style.

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