     
     private func _drawVerticalMinorLines(context: DrawingContext, initialPoint: Point) {
         
-        guard let verticalMinor = verticalMinor else { return }
+        guard let verticalMinor = lines.verticalMinor else { return }
         
         context.strokeColor = verticalMinor.lineColor
         context.lineWidth = verticalMinor.lineWidth
         
         var path = Path()
         
-        for x in stride(from: initialPoint.x,
-                        through: initialPoint.x + size.width,
-                        by: verticalMajor.lineSpacing / Float(verticalMinor.minorSegmentsPerMajorSegment)) {
-                            
-                            path.move(toX: x, y: initialPoint.y)
-                            path.appendLine(toX: x, y: initialPoint.y + size.height)
+        let stride = lines.verticalMajor.lineSpacing / Float(verticalMinor.minorSegmentsPerMajorSegment)
+        
+        for x in _strideHorizontally(initialPoint: initialPoint, by: stride) {
+            
+            path.move(toX: x, y: initialPoint.y)
+            path.appendLine(toX: x, y: initialPoint.y + size.height)
         }
         
         context.stroke(path)

    
    private func _drawHorizontalMinorLines(context: DrawingContext, initialPoint: Point) {
        
        guard let horizontalMinor = horizontalMinor else { return }
        
        context.strokeColor = horizontalMinor.lineColor
        context.lineWidth = horizontalMinor.lineWidth
        
        var path = Path()
        
        for y in stride(from: initialPoint.y,
                        through: initialPoint.y + size.height,
                        by: horizontalMajor.lineSpacing / Float(horizontalMinor.minorSegmentsPerMajorSegment)) {
                            
                            path.move(toX: initialPoint.x, y: y)
                            path.appendLine(toX: initialPoint.x + size.width, y: y)
        }
        
        context.stroke(path)
    }
}

        _drawVerticalMajorLines(context: context, initialPoint: position)
        _drawHorizontalMajorLines(context: context, initialPoint: position)
        
        _drawTopSerifs(context: context, initialPoint: position)
        _drawBottomSerifs(context: context, initialPoint: position)
        _drawLeftSerifs(context: context, initialPoint: position)
        _drawRightSerifs(context: context, initialPoint: position)
        
//        _drawTopLabels(context: context, initialPoint: position)
//        _drawBottomLabels(context: context, initialPoint: position)
//        _drawLeftLabels(context: context, initialPoint: position)
//        _drawRightLabels(context: context, initialPoint: position)
        
        // Return to the initial state
        context.lineWidth = _lineWidth
        context.strokeColor = _strokeColor
        context.lineCap = _lineCap
    }
    
    
    // MARK: - Draw lines
    
    private func _strideHorizontally(initialPoint: Point, by _stride: Float) -> StrideThrough<Float> {
        return stride(from: initialPoint.x, through: initialPoint.x + size.width, by: _stride)
    }
    
    private func _strideVertically(initialPoint: Point, by _stride: Float) -> StrideThrough<Float> {
        return stride(from: initialPoint.y, through: initialPoint.y + size.height, by: _stride)
    }
    
    private func _drawVerticalMajorLines(context: DrawingContext, initialPoint: Point) {
        
        context.strokeColor = lines.verticalMajor.lineColor
        context.lineWidth = lines.verticalMajor.lineWidth
        
        var path = Path()
        
        for x in _strideHorizontally(initialPoint: initialPoint, by: lines.verticalMajor.lineSpacing) {
            
            path.move(toX: x, y: initialPoint.y)
            path.appendLine(toX: x, y: initialPoint.y + size.height)
        }
        
        context.stroke(path)
