         return stride(from: initialPoint.y, through: initialPoint.y + size.height, by: _stride)
     }
     
+    private var _verticalLineLengthCorrection: Float {
+        return max(lines.horizontalMajor.lineWidth, lines.horizontalMinor?.lineWidth ?? 0) / 2
+    }
+    
+    private var _horizontalLineLengthCorrection: Float {
+        return max(lines.verticalMajor.lineWidth, lines.verticalMinor?.lineWidth ?? 0) / 2
+    }
+    
     private func _drawVerticalMajorLines(context: DrawingContext, initialPoint: Point) {
         
         context.strokeColor = lines.verticalMajor.lineColor

        context.strokeColor = top.color
        context.lineWidth = top.width
        
        var path = Path()
        
        let stride = Float(top.frequency) * lines.verticalMajor.lineSpacing
        
        let topY = initialPoint.y + size.height
        
        for x in _strideHorizontally(initialPoint: initialPoint, by: stride) {
            
            path.move(toX: x, y: topY)
            path.appendLine(toX: x, y: topY - top.length)
        }
        

        
        for y in _strideVertically(initialPoint: initialPoint, by: stride) {
            
            path.move(toX: rightmostX + _horizontalLineLengthCorrection, y: y)
            path.appendLine(toX: rightmostX - right.length, y: y)
        }
        
