     
     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)

        
        /// Creates a new line parameter set.
        ///
        /// - parameter lineWidth:                    The width of a line.
        /// - parameter minorSegmentsPerMajorSegment: The number of minor segments per one vertical major segment.
        /// - parameter lineColor:                    The color of lines.
        public init(lineWidth: Float, minorSegmentsPerMajorSegment: Int, lineColor: Color) {
            self.lineWidth = lineWidth
            self.minorSegmentsPerMajorSegment = minorSegmentsPerMajorSegment
            self.lineColor = lineColor
        }
    }
    
    /// The parameters of the vertical major lines of the grid.
    public var verticalMajor: MajorLineParameters
    
    /// The parameters of the horizontal major lines of the grid.
    public var horizontalMajor: MajorLineParameters
    
    /// The parameters of the vertical minor lines of the grid.
    public var verticalMinor: MinorLineParameters?
    
    /// The parameters of the horizontal minor lines of the grid.
    /// Default line width is 0.25, line color is 50% gray and the default number of minor segments
    /// per one major segment is 2.
    public var horizontalMinor: MinorLineParameters?
    
    /// The size of the grid.
    public var size: Size
    
    /// Draws the grid in the provided context.
    ///

        
        /// Creates a new line parameter set.
        ///
        /// - parameter lineWidth:   The width of a line. Default value is 0.5.
        /// - parameter lineSpacing: The spacing between lines. Default value is 10.
        /// - parameter lineColor:   The color of lines. Default is 80% gray.
        public init(lineWidth: Float = 0.5, lineSpacing: Float = 10, lineColor: Color = Color(gray: 0.8)!) {
            self.lineWidth = lineWidth
            self.lineSpacing = lineSpacing
            self.lineColor = lineColor
