         }
         
         // ****** Test Diagonal locations ******
-        var diagonalLocations = [BoardLocation]()
+        var diagonalStrides = [BoardStride]()
         
         if color == .white {
-            diagonalLocations.append( fromLocation.incrementedBy(x: -1, y: 1) )
-            diagonalLocations.append( fromLocation.incrementedBy(x: 1, y: 1) )
+            diagonalStrides.append( BoardStride(x: -1, y: 1) )
+            diagonalStrides.append( BoardStride(x: 1, y: 1) )
         }
         else{
-            diagonalLocations.append( fromLocation.incrementedBy(x: -1, y: -1) )
-            diagonalLocations.append( fromLocation.incrementedBy(x: 1, y: -1) )
-        }
-
-        for location in diagonalLocations {
+            diagonalStrides.append( BoardStride(x: -1, y: -1) )
+            diagonalStrides.append( BoardStride(x: 1, y: -1) )
+        }
+
+        for stride in diagonalStrides {
+            
+            guard fromLocation.canIncrementBy(stride: stride) else {
+                continue
+            }
+            
+            let location = fromLocation.incrementedBy(stride: stride)
             
             if location != toLocation {
                 continue

        
        return false
        
        // TODO: Need to implement the en-passent rule
        /*
        for offset in offsets {
            
            let offsetLocation = fromLocation.incrementedBy(x: offset.x, y: offset.y)
            
            if toLocation == offsetLocation && canPieceOccupySquare(pieceLocation: fromLocation, xOffset: offset.x, yOffset: offset.y, board: board) {
                return true
            }
        }
        
        return false
 */
    }
}




        // ****** Test forward locations ******
        var forwardStrides = [BoardStride]()
        
        // Add one ahead offset
        if color == .white {
            forwardStrides.append( BoardStride(x: 0, y: 1) )
        }
        else{
            forwardStrides.append( BoardStride(x: 0, y: -1) )
        }
        
        // Add the two ahead offset
        if color == .white && fromLocation.y == 1 {
            
            forwardStrides.append( BoardStride(x: 0, y: 2) )
        }
        else if color == .black && fromLocation.y == 6 {
            
            forwardStrides.append( BoardStride(x: 0, y: -2) )
        }
        
        for stride in forwardStrides {
            
            guard fromLocation.canIncrementBy(stride: stride) else {
                continue
            }
            
            let location = fromLocation.incrementedBy(stride: stride)
            
            if let piece = board.getPiece(at: location) {
                continue
